Come posso ottenere TeamCity per ritirare i miei test NUnit eseguiti da Rake?
Domanda
Quando eseguo questo:
sh "#{MBUNIT_PATH}Gallio.Echo.exe /no-echo-results src/#{dll}/bin/Debug/#{dll}.dll"
nel mio rakefile, Gallio esegue i miei test mbunit e TeamCity raccoglie i risultati: D
Ma questo:
sh "#{NUNIT_PATH}nunit-console.exe /nologo src/#{dll}/bin/Debug/#{dll}.dll"
esegue i miei test, ma TeamCity non rileva il risultato :(
Ho provato per la prima volta a eseguire i miei test NUnit attraverso Gallio , ma non rileva alcun test :(
Usando il launcher NUnit di teamcity ottengo:
Failure executing test(s) on assembly nunittests.dll with NUnit 2.5.0.9122. Version 2.0 is not a compatible version.
Quale sarebbe una soluzione a questo? O come posso fare in modo che Gallio raccolga i miei test NUnit o come posso far accettare nunit-console da TeamCity.
Soluzione
Devi usare il runner NUnit integrato.
Se cerchi nella directory di un agente di build, cerca solo * .exe. Dovrebbe essercene uno chiamato NUnit-Runner.exe
o qualcosa del genere. È quindi necessario utilizzarlo invece.
Dai un'occhiata all'articolo Creazione della soluzione .NET con Rake e TeamCity . A circa 3/4 della discesa mostra cosa intendo:
Per ottenere quanto sopra ho fatto qualcosa di simile in Ruby. Ho impostato una variabile $ NUnit, se esiste la proprietà ENV ['AGENT_WORKING_DIR'], allora uso il runner di TeamCity NUnit, altrimenti uso la normale NUnit (ovvero, gli sviluppatori possono eseguire lo script Rake).