我最近尝试使用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文件来绑定程序集版本。
答案 0 :(得分: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>