NAnt没有运行NUnit测试

时间:2009-12-29 17:08:42

标签: .net-3.5 nunit nant

我正在使用NUnit 2.5和NAnt 0.85来编译.NET 3.5库。因为NAnt 0.85不支持.NET 3.5开箱即用,所以我已经将3.5框架的条目添加到NAnt.exe.config。

'MyLibrary'构建,但当我点击“测试”目标执行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构建程序集...   无法加载文件或程序集“测试”或其依赖项之一...

如果有人能指出我正确的方向或描述他们遇到的类似情况,我将不胜感激。

编辑我已经尝试过使用NAnt 0.86 beta 1,同样的问题就出现了。

3 个答案:

答案 0 :(得分:9)

Nunit2 Nant任务仍然是硬编码使用Nunit 2.2库。

请参阅文档:http://nant.sourceforge.net/release/latest/help/tasks/nunit2.html

  

“使用NUnit V2.2框架运行测试”

您可以使用程序集绑定重定向对其进行排序,但我认为建议只是使用Nant&lt; exec&gt;任务并直接调用NUnit 2.5控制台运行程序。

e.g:

    <!-- 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 :(得分:1)

我没有使用手动编辑的NAnt 0.85配置的经验。也许你应该试试NAnt的latest nightly(0.86 beta 2)。使用此版本,我们构建了所有.NET 3.5项目而没有任何抱怨。

答案 2 :(得分:0)

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

在过去,我犯了错误,没有包含适当的属性,并且运行测试没有明显的结果。这是一件简单的事情,但只是确定。