2008-09-05 25 views
6

Próbowałem ostatnio użyć NAnt (beta 0.86.2962.0) do uruchomienia testów jednostkowych skompilowanych z ostatnią stabilną wersją NUnit (v2.4.8) bez powodzenia.Jak uruchomić testy NUnit v2.4.8 z NAnt 0.86 beta?

Błąd pojawia się następująco:

[nunit2] Montaż "C: \ Dev \ mójprzykład \ bin \ testy \ My.Sample.Tests.dll" nie zawiera żadnych testów.

Oczywiście zestaw zawiera testy, które można uruchomić u dowolnego biegacza, np. NUnit One, TestDriven lub Resharper. Chciałbym użyć < nunit2> zadania, a nie bezpośrednio < exec> one, ale zastanawiam się, czy jest to nadal możliwe, nawet przy użyciu plików app.config do wiązania wersji zespołów.

Odpowiedz

10

Nie pamiętam dlaczego, ale zrezygnowałem z używania zadania < nunit2> i korzystałem z przyjemności z zadania < exec> task i nunit-console.exe. Jeśli to pomaga, oto mój cel testowy, który uruchamia NUnit i FxCop. Zauważ, że pomija je, jeśli pliki wykonywalne nie znajdują się w ścieżce systemu Windows.

<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> 
+1

I ten drugi ... Kiedyś, aby spróbować zrobić magię app.config aby spróbować i dostać zadanie nunit2 do pracy, ale zrezygnował jakiś czas temu i teraz użyć exec zadanie jak opisano powyżej. –

+2

Don, Andy: Wierzę, że dobrym powodem do użycia zadania zamiast jest, jeśli twój zestaw testów ma testy oznaczone [ExpectedException], a wyjątek jest faktycznie rzucany, zadanie NAnt zgłasza to jako niepowodzenie zamiast sukcesu i kompilacja nie powiedzie się. Mam teraz ten problem. Rozwiążę to za pomocą , ale oczywiście doceniam kolejną pomoc. – azheglov

+0

HI faceci, próbuję użyć mojej jednostki test dll w pliku arg. Ale nie mówi, które testy zawiodły. Znacznik arg nie ma komunikatu "verbose" lub błędu "fail", więc w jaki sposób dowiesz się, czy Twoje testy się nie powiodły? – alice7

Powiązane problemy