【问题标题】:How to run NUnit v2.4.8 tests with NAnt 0.86 beta?如何使用 NAnt 0.86 beta 运行 NUnit v2.4.8 测试?
【发布时间】:2008-09-05 08:14:39
【问题描述】:

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

我得到的错误如下:

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

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

【问题讨论】:

    标签: .net unit-testing nunit nant


    【解决方案1】:

    我不记得为什么了,但是我放弃了使用 任务,我一直在愉快地使用 任务和 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>
    

    【讨论】:

    • 我支持这个...我曾经尝试使用 app.config 魔法来尝试让 nunit2 任务工作,但不久前放弃了,现在如上所述使用 exec 任务。
    • Don,Andy:我相信使用 任务而不是 的一个很好的理由是,如果您的测试套件有标记为 [ExpectedException] 的测试并且实际上抛出了异常,那么 NAnt 任务将其报告为失败而不是成功,并且构建失败。我现在遇到这个问题。我将通过使用 来解决它,但当然会欣赏另一个解决方法的建议。
    • 大家好,我正在尝试在 arg 文件中使用我的单元测试 dll。但这并不是说哪些测试失败了。 arg 标签没有详细或错误失败,那么您将如何确定您的测试是失败还是通过?
    • 我认为如果任何测试失败,nunit-console 会将返回值设置为非零,这应该会导致构建失败,@alice7。我认为它还会为任何失败的测试将消息写入标准输出。如果您没有看到,那么我怀疑还有其他问题。尝试在命令提示符下运行 nunit-console,这样您就可以清楚地看到输出是什么。 Nant 可能无法找到 nunit-console.exe,或者 NUnit 可能无法找到您的测试 DLL。如果这没有帮助,那么我建议您提出一个单独的问题,尽可能详细地提供。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多