Frage

Gibt es eine Chance, diese Arbeit zu bekommen?Ich möchte, dass meine Tests von der Nunit2-Aufgabe in NAnt ausgeführt werden.Außerdem möchte ich NCover ausführen, ohne erneut Tests durchzuführen.

War es hilfreich?

Lösung

Ich habe es herausgefunden.Sie ändern den Pfad des NUnit-Launchers in den von TeamCity.Hier ist ein Beispiel:

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

Wie Sie sehen, habe ich dort einige meiner eigenen Variablen, aber Sie sollten in der Lage sein, herauszufinden, was vor sich geht.Die Eigenschaft, um die es Ihnen geht, ist teamcity.dotnet.nunitlauncher.Mehr darüber können Sie hier lesen http://www.jetbrains.net/confluence/display/TCD4/TeamCity+NUnit+Test+Launcher.

Andere Tipps

Warum lässt NCover nicht NUnit ausführen?Sie erhalten genau die gleichen Testergebnisse.Und was genau wollen Sie messen, wenn Sie NCover außerhalb der Tests ausführen?Es gibt andere Möglichkeiten, veralteten oder nicht referenzierten Code zu finden.

Ich muss das Gleiche tun.Ich denke, das Beste, was wir hoffen können, ist, die mit TeamCity gelieferte NUnit-JAR-Datei aufzubrechen und eine benutzerdefinierte Aufgabe zu schreiben, die NUnit2 und NCover integriert.Ich wünschte, das wäre nicht so, aber die NUnit2-Aufgabe erzeugt keine sichtbare Ausgabe, sodass TeamCity offensichtlich nicht StdOut für die Testergebnisse liest.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top