Domanda

C'è qualche possibilità di ottenere questo lavoro?Voglio che i miei test vengano eseguiti dall'attività nunit2 in NAnt.Inoltre voglio eseguire NCover senza eseguire nuovamente i test.

È stato utile?

Soluzione

L'avevo capito.Cambia il percorso del launcher NUnit in quello di TeamCity.Ecco un esempio:

    <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/"
    />

Come puoi vedere, ho alcune delle mie variabili lì dentro, ma dovresti essere in grado di capire cosa sta succedendo.La proprietà che ti interessa è teamcity.dotnet.nunitlauncher.Puoi leggere di più a riguardo qui su http://www.jetbrains.net/confluence/display/TCD4/TeamCity+NUnit+Test+Launcher.

Altri suggerimenti

Perché non fare in modo che NCover esegua NUnit?Ottieni esattamente gli stessi risultati del test.Inoltre, cosa stai cercando di misurare esattamente quando esegui NCover al di fuori dei test?Esistono altri modi per trovare codice obsoleto o senza riferimenti.

Devo fare la stessa cosa.Penso che il meglio che possiamo sperare sia aprire il file jar NUnit fornito con TeamCity e scrivere un'attività personalizzata che integri NUnit2 e NCover.Vorrei che non fosse così, ma l'attività NUnit2 non produce alcun output visibile, quindi TeamCity ovviamente non sta leggendo StdOut per i risultati del test.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top