Pergunta

Existe alguma chance de conseguir esse trabalho?Quero que meus testes sejam executados pela tarefa nunit2 no NAnt.Além disso, quero executar o NCover sem executar testes novamente.

Foi útil?

Solução

Eu descobri.Você altera o caminho do inicializador do NUnit para o do TeamCity.Aqui está um exemplo:

    <mkdir dir="${build}/coverage" failonerror="false"/>

    <!-- run the unit tests and generate code coverage -->
    <property name="tools.dir.tmp" value="${tools.dir}"/>
    <if test="${not path::is-path-rooted(tools.dir)}">
        <property name="tools.dir.tmp" value="../../${tools.dir}"/>
    </if>

    <property name="nunitpath" value="${lib.dir}/${lib.nunit.basedir}/bin/nunit-console.exe"/>
    <property name="nunitargs" value=""/>
    <if test="${property::exists('teamcity.dotnet.nunitlauncher')}">
        <property name="nunitpath" value="${teamcity.dotnet.nunitlauncher}"/>
        <property name="nunitargs" value="v2.0 x86 NUnit-2.4.8"/>
    </if>

    <ncover program="${tools.dir.tmp}/${tools.ncover.basedir}/ncover.console.exe"
       commandLineExe="${nunitpath}"
       commandLineArgs="${nunitargs} ${proj.name.unix}.dll"
       workingDirectory="${build}"
       assemblyList="${proj.srcproj.name.unix}"
       logFile="${build}/coverage/coverage.log"
       excludeAttributes="System.CodeDom.Compiler.GeneratedCodeAttribute"
       typeExclusionPatterns=".*?\{.*?\}.*?"
       methodExclusionPatterns="get_.*?; set_.*?"
       coverageFile="${build}/coverage/coverage.xml"
       coverageHtmlDirectory="${build}/coverage/html/"
    />

Como você pode ver, tenho algumas de minhas próprias variáveis, mas você deve ser capaz de descobrir o que está acontecendo.A propriedade com a qual você está preocupado é teamcity.dotnet.nunitlauncher.Você pode ler mais sobre isso aqui em http://www.jetbrains.net/confluence/display/TCD4/TeamCity+NUnit+Test+Launcher.

Outras dicas

Por que o NCover não executa o NUnit?Você obtém exatamente os mesmos resultados de teste.Além disso, o que exatamente você está tentando medir ao executar o NCover fora dos testes?Existem outras maneiras de encontrar código obsoleto ou não referenciado.

Estou tendo que fazer a mesma coisa.Acho que o melhor que podemos esperar é abrir o arquivo jar do NUnit que vem com o TeamCity e escrever uma tarefa personalizada que integre NUnit2 e NCover.Eu gostaria que não fosse assim, mas a tarefa NUnit2 não produz nenhuma saída visível, então o TeamCity obviamente não está lendo StdOut para os resultados do teste.

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