我希望我的单元测试无论出现故障都能够运行。我想知道有多少个失败,而不仅仅是第一个,所以我不会经历构建、失败、修复和再次构建的循环。另外,修复一些测试是其他团队的责任,所以我想知道我们的测试是否正常。
因此,在 Nant 中,我在单元测试的目标中添加了以下内容,因为 failureonerror 为 false,它会运行所有测试,但不会使构建失败。
<nunit2 failonerror="false" haltonfailure="false">
<test appconfig="tests.config">
<assemblies basedir="${test.dir}">
<include name="SomeTests.dll" />
</assemblies>
</test>
</nunit2>
运行结束时,Nant 报告
1 non-fatal error(s), 0 warning(s)
我想检查非 fatal error 计数,如果它大于0,我想做这样的事情......
<fail message="Failures reported in unit tests."
unless="report.errors == 0" />
除了我不知道如何获取错误计数......有人知道如何吗?
最佳答案
除了删除 <nunit2>
的事实之外支持 <exec>
可能是a good idea anyway ,在您的特殊情况下 <exec>
任务可以解决问题:
<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>
关于unit-testing - 在 nant 中运行所有单元测试,即使有些测试失败!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5499781/