NAnt无法运行NUnit测试

4
我正在使用 NUnit 2.5 和 NAnt 0.85 编译 .NET 3.5 库。由于 NAnt 0.85 不支持 .NET 3.5,所以我在 NAnt.exe.config 中添加了一个条目来支持 3.5 框架。
'MyLibrary' 构建成功,但是当我执行 "test" 目标来运行 NUnit 测试时,似乎没有运行任何测试。
[nunit2] Tests run: 0, Failures: 0, Not run: 0, Time: 0.012 seconds

以下是我在 NAnt.build 文件中用于构建和运行测试的条目:

<target name="build_tests" depends="build_core">
    <mkdir dir="Target" />
    <csc target="library" output="Target\Test.dll" debug="true">
        <references>
            <include name="Target\MyLibrary.dll"/>
            <include name="Libraries\nunit.framework.dll"/>
        </references>
        <sources>
            <include name="Test\**\*.cs" />
        </sources>
    </csc>

</target>

<target name="test" depends="build_tests">                
    <nunit2>
        <formatter type="Plain" />
        <test assemblyname="Target\Test.dll" />
    </nunit2>
</target>

我需要注意某些版本问题吗?Test.dll在NUnit GUI中运行良好。
测试dll肯定被找到了,因为如果我移动它,就会出现以下错误:
执行测试失败。如果您的程序集未使用NUnit 2.2.8.0构建... 无法加载文件或程序集“Test”或其某个依赖项...
如果有人能指点我方向或描述他们遇到的类似情况,我将不胜感激。
编辑:我已经尝试过NAnt 0.86 beta 1,出现了同样的问题。
3个回答

9
Nunit2 Nant任务仍然硬编码使用Nunit 2.2库。请参阅文档:http://nant.sourceforge.net/release/latest/help/tasks/nunit2.html。“使用NUnit V2.2框架运行测试”。您可以通过程序集绑定重定向来解决此问题,但我认为建议是直接使用Nant<exec>任务并直接调用NUnit 2.5控制台运行程序。例如:
    <!-- Run Unit Tests under NUnit 2.5 -->
    <exec program="${LibraryPath}\NUnit\2.5.7\nunit-console.exe">
        <arg value="${SourcePath}\ProjectName.Tests\bin\Release\ProjectName.Tests.dll" />
    </exec>

无论如何,这样会简单得多。

我正在通过TeamCity运行此操作,并且单元测试输出似乎仍然表现正确。


1

我没有使用手动编辑的 NAnt 0.85 配置的经验。也许您应该尝试使用 NAnt(0.86 beta 2)的最新夜间版本。使用此版本,我们构建所有 .NET 3.5 项目都没有任何问题。


0

为了进行健全性检查,您是否确保在测试类中包含了适当的NUnit属性?这些属性是NUnit确定哪些类是测试夹具,哪些方法是测试用例的钩子。

过去,我曾经犯过不包含适当属性的错误,并且运行测试时没有明显的结果。这是一个简单的事情,但要确保它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接