I want my unit tests to run regardless of there being a failure. I want to know how many are failing not just the first one, so I don't go through the build, fail, fix and build again cycle. Also, it is the responsibility of an other team to fix some tests so I want to know our are ok.
So in Nant, I've added the following in a target for the unit tests, as failonerror is false it runs all the tests, but does not fail the build.
<nunit2 failonerror="false" haltonfailure="false">
<test appconfig="tests.config">
<assemblies basedir="${test.dir}">
<include name="SomeTests.dll" />
</assemblies>
</test>
</nunit2>
At the end of the run, Nant reports
1 non-fatal error(s), 0 warning(s)
I want to check the non-fatal error count, if it is more than 0, I want to do something like this...
<fail message="Failures reported in unit tests."
unless="report.errors == 0" />
except I don't know how to get the e开发者_StackOverflowrror count......does anyone know how?
Apart from the fact that dropping <nunit2>
in favor of <exec>
might be a good idea anyway, in Your special case the <exec>
task can solve the problem:
<exec
program="C:\dev\tools\NUnit\2.5.9\bin\net-2.0\nunit-console.exe"
resultproperty="exec.nunit.result"
failonerror="false">
<arg file="C:\foo\bar.dll" />
</exec>
<if test="${int::parse(exec.nunit.result) != 0}">
<!-- fail, print number of failures etc. -->
</if>
精彩评论