6

我最近尝试使用 NAnt (beta 0.86.2962.0) 运行一些使用 NUnit 的最后一个稳定版本 (v2.4.8) 编译的单元测试,但没有成功。

我得到的错误如下:

[nunit2] 程序集“C:\Dev\MySample\bin\tests\My.Sample.Tests.dll”不包含任何测试。

当然,该程序集包含我可以从任何运行器运行的测试,例如 NUnit one、TestDriven 或 Resharper。我想使用 <nunit2> 任务,而不是直接使用 <exec> 任务,但我想知道它是否仍然可能,即使使用 app.config 文件绑定程序集版本。

4

1 回答 1

10

我不记得为什么,但我放弃了使用 <nunit2> 任务,我一直在愉快地使用 <exec> 任务和 nunit-console.exe。如果有帮助,这是我运行 NUnit 和 FxCop 的测试目标。请注意,如果可执行文件不在 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>
于 2008-10-01T19:58:47.590 回答