Pergunta

Para ir direto ao ponto, pode a arquivos csproj TeamCity .NET processo NUnitLauncher Microsoft?

Faço esta pergunta porque o seguinte.

Eu tenho um script NANT construção. Neste script Eu tenho um número de testes que o uso nunit-console.exe (que vem com o NUnit v2.5.2).

Um exemplo de um teste no meu arquivo de construção Nant é:

<target name="x.Commons.Tests" depends="xCore">
<exec program="${nunit-console.exe}" commandline="${nunit-console.args} Core\x.Commons.Tests\x.Commons.Tests.csproj" failonerror="${nunit-console.failonerror}"/>
 </target>

FailOnError é definido como falso, e os NUnit-console.args é definido como '/ nologo'.

Quando eu executar esses testes na minha máquina local eu recebo saída de teste. No entanto, quando eu instruir TeamCity para construir meu arquivo NAnt construir, e instruí-lo a processar as metas de teste eu recebo nenhuma saída de teste para TeamCity. Eu posso ver no log que nunit-colsole.exe está produzindo saída de resultado do teste, mas eu não estou vendo isso no painel TeamCity.

Depois de ler ao redor eu encontrei alguns artigos que indicam que medidas adicionais são necessárias para obter essa entrada em TeamCity. Daí eu modifiquei meu teste para:

    <target name="x.Configuration.Tests" depends="xCore">
  <mkdir dir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <copy file="${teamcity.dotnet.nunitaddin}-2.5.0.dll" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <copy file="${teamcity.dotnet.nunitaddin}-2.5.0.pdb" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <exec program="${nunit-console.exe}" commandline="${nunit-console.args} Core\x.Configuration.Tests\x.Configuration.Tests.csproj" failonerror="${nunit-console.failonerror}"/>
 </target>

Note que eu também fez questão que a tag contém uma entrada de 'suplementos'.

No entanto, como antes eu posso ver que os testes estão trabalhando como as exibições NUnit-console.exe seus resultados no log, mas estou ficando sem saída para TeamCity.

Uma resposta à minha pergunta, ou qualquer ajuda seria apreciada!

Foi útil?

Solução

Use

<copy file="${teamcity.dotnet.nunitaddin}-2.5.2.dll" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
<copy file="${teamcity.dotnet.nunitaddin}-2.5.2.pdb" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>

TeamCity Addin para NUnit versão deve coincidir com a versão NUnit. Verifique você versão TeamCity suporta NUnit 2.5.2 ou baixar mais recente compilação.

Outras dicas

A nossa forma de fazer isso é tirando proveito da capacidade do TeamCity para automaticamente pegar testes NUnit no csproj arquivos.

  • Primeiro, você precisa instalar o MSBuild Comunidade .
  • Em seguida, configure o seu .csproj arquivos da seguinte maneira:

    • Tenha isso em logo após

    • Criar um ItemGroup:

    • Criar um alvo NUnit:

  • Então, em TeamCity, na parte "Runner" de definição de projecto, escolha MSBuild como o corredor e nos Metas campo especificar construção e nunit como alvos

    Targets: construção nunit

TeamCity deve pegar os testes de unidade automaticamente na próxima compilação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top