在nant中运行所有单元测试,即使有些失败!

时间:2011-03-31 12:24:11

标签: unit-testing cruisecontrol.net nant

我希望我的单元测试能够在不管出现故障的情况下运行。我想知道有多少人不仅仅是第一个失败,所以我不会经历构建,失败,修复和再次构建循环。此外,另一个团队有责任修复一些测试,所以我想知道我们没问题。

所以在Nant中,我在单元测试的目标中添加了以下内容,因为failonerror为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)

我想检查非致命错误计数,如果它超过0,我想做这样的事情......

<fail message="Failures reported in unit tests."
      unless="report.errors == 0" />

除了我不知道如何获得错误计数......有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

除了<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>