Estou tentando executar testes NUnit automatizados para um aplicativo C #, todas as noites e em cada commit para svn.
Isso é algo que o Jenkins-CI pode fazer?
Existe um tutorial online ou documento de instruções que documenta uma configuração semelhante que eu possa consultar?
c#
continuous-integration
hudson
jenkins
mirtilo
fonte
fonte
Respostas:
Eu precisava fazer exatamente o que você faz, eis como configurei o Jenkins para fazer isso:
Teste de dll único:
Teste de dll múltiplo usando projetos de teste NUnit :
Assim que o projeto tiver sido construído, o NUNit será executado e os resultados poderão ser visualizados no Painel (se você passar o mouse sobre o ícone do relatório meteorológico) ou na página do projeto em Resultado do Último Teste .
Você também pode executar o comando de dentro do Visual Studio ou como parte do processo de compilação local.
Aqui estão duas postagens de blog que usei como referência. Não encontrei nenhum que
atendesse exatamente aos meus requisitos: Guia de 1 hora para configuração de integração contínua: Jenkins atende .Net (2011)
Guia para construção de projetos .NET usando Hudson (2008)
fonte
"C:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console-x86.exe" UnitTests/UnitTests.nunit
. Funcionou perfeitamente para mim.Se você não quiser codificar seus projetos de teste de unidade, é melhor escrever um script para obter todas as dlls de seus projetos de teste de unidade. Fazemos isso com o Powershell e seguimos uma convenção específica para nomear nossos Projetos de Teste de Unidade. Aqui está o conteúdo do arquivo powershell que executa nossos testes de unidade:
O script é robusto o suficiente para ser reutilizado em todos os nossos trabalhos de construção. Se você não gosta do caminho completo para o console NUnit, você sempre pode colocar esse local em sua variável de ambiente PATH.
Em seguida, colocamos o arquivo RunUnitTests.ps1 em nosso servidor de compilação e usamos este comando em lote:
fonte
[string] $sourceDirectory = $(get-location)
e para caminhos com espaços. Tive que mudar o passe de montagem para nUnit para$cFiles = $cFiles + '"' + $file + '"' + " "
Para trabalho agrícola Nunit 3 ou superior:
Etapa de construção (linha de comando do Windows)
"c:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" c:\AutomationTraining\CSharpSelenium\bin\Debug\test.dll --result=TestR.xml;format=nunit2
Pós-etapa para publicação de relatório Nunit, mostra apenas o arquivo de resultados de teste no diretório do espaço de trabalho do Jenkins, não em seu projeto: TestR.xml
Precisamos fazer os resultados do teste no formato nunit2 porque agora o plugin Jenkins Nunit não reconhece o formato de resultados Nunit3. Além disso, o formato da string de opções é diferente:
--result=TestR.xml;format=nunit2
NÃO/xml=nunit-result.xml
fonte
Isso funciona bem, eu configurei isso antes.
Configure o NUnit para produzir os resultados em um arquivo XML e configure o plug - in NUnit Jenkins para consumir esse arquivo XML. Os resultados estarão disponíveis no painel.
Agora, como você invoca o NUnit é com você. A maneira como fizemos foi: Jenkins job executa NAnt target executa NUnit test suite.
Você pode configurar os trabalhos do Jenkins para serem executados na confirmação e / ou agendados em um determinado momento.
fonte
A solução de Ralph Willgoss está funcionando bem, mas eu mudei 2 coisas para torná-la ótima:
a) Usei um projeto NUnit em vez do arquivo DLL diretamente. Isso torna mais fácil adicionar mais assemblies ou configurar o teste na GUI do NUnit.
b) Eu adicionei mais uma linha ao lote para evitar que a compilação falhe quando um teste falhar:
O plug-in NUnit mencionado marca a build como UNSTABLE automaticamente, que é exatamente o que eu quero, sempre que um teste falha. Ele aparece com um ponto amarelo.
fonte
Eu acho que é melhor falhar a compilação quando ela não passa, para que você não a implante. Faça algo assim:
Referência: http://www.greengingerwine.com/index.php/2013/01/tip-check-errorlevel-in-your-post-build-steps-when-using-nunit/
fonte
Jenkins tem plug-ins que suportam isso. A configuração exata vai depender um pouco da configuração do seu projeto. Existem plug-ins específicos para nUnit, MSBuild, nAnt etc. Comece observando a página de plug-ins, mas não deve ser terrivelmente difícil de descobrir.
fonte
Esta é a minha solução para a execução de OpenCover com vstest em Jenkins:
Cada dll de teste é executado em um próprio processo porque tivemos problemas para executar todas as dlls de teste em um único processo (problemas com o carregamento do assembly).
fonte
Para .Net Core, é suficiente adicionar a etapa de compilação "execute shell" com o seguinte script:
Depois disso, adicione a ação pós-compilação "Publicar relatório de resultado do teste MSTest" para tornar os resultados do teste visíveis.
O caminho padrão dos relatórios de teste deve ser
**/*.trx
e publicará todos os.trx
arquivos produzidos .fonte