Wie führe ich NUnit v2.4.8-Tests mit NAnt 0.86 Beta durch?
-
09-06-2019 - |
Frage
Ich habe kürzlich versucht, mit NAnt (Beta 0.86.2962.0) einige Unit-Tests auszuführen, die mit der letzten stabilen Version von NUnit (v2.4.8) kompiliert wurden, ohne Erfolg.
Der Fehler, den ich erhalte, ist der folgende:
[nunit2] Assembly „C:\Dev\MySample\bin ests\My.Sample.Tests.dll“ enthält keine Tests.
Natürlich enthält die Assembly Tests, die ich von jedem Runner aus ausführen kann, wie NUnit One, TestDriven oder Resharper.Ich würde gerne die <nunit2>-Aufgabe verwenden und nicht direkt die <exec>-Aufgabe, frage mich aber, ob es noch möglich ist, sogar app.config-Dateien zum Binden von Assemblyversionen zu verwenden.
Lösung
Ich kann mich nicht erinnern, warum, aber ich habe es aufgegeben, die Aufgabe <nunit2> zu verwenden, und verwende stattdessen die Aufgabe <exec> und nunit-console.exe mit Freude.Wenn es hilft, hier ist mein Testziel, auf dem NUnit und FxCop ausgeführt werden.Beachten Sie, dass sie übersprungen werden, wenn sich die ausführbaren Dateien nicht im Windows-Pfad befinden.
<target name="test" description="Run unit tests" depends="build">
<property name="windows-path" value="${string::to-lower(environment::get-variable('PATH'))}"/>
<property name="nunit-in-path"
value="${string::contains(windows-path, 'nunit')}"/>
<echo message="Tests skipped because no NUnit folder was found in the Windows path."
unless="${nunit-in-path}"/>
<exec program="nunit-console.exe" if="${nunit-in-path}">
<arg file="../MyProject/MyProjectTest.nunit"/>
</exec>
<property name="fxcop-in-path"
value="${string::contains(windows-path, 'fxcop')}"/>
<echo message="FxCop skipped because no FxCop folder was found in the Windows path."
unless="${fxcop-in-path}"/>
<fxcop projectFile="../MyProject/MyProject.fxcop" directOutputToConsole="true"
failOnAnalysisError="true" if="${fxcop-in-path}"/>
</target>