NAnt未运行NUnit测试

问题描述:

我正在使用NUnit 2.5和NAnt 0.85来编译.NET 3.5库。由于NAnt 0.85不支持.NET 3.5以上的版本,因此我已将3.5框架的条目添加到NAnt.exe.config。NAnt未运行NUnit测试

'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是绝对被人发现,因为如果我移动时,我收到以下错误:

Failure executing test(s). If you assembly is not build using NUnit 2.2.8.0... Could not load file or assembly 'Test' or one of its dependencies...

我将不胜感激,如果任何人都可以点我在正确的方向或描述他们有一个与之相似的情况遇到。

编辑我已经尝试过NAnt 0.86 beta 1,并且会出现同样的问题。

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

见文档:http://nant.sourceforge.net/release/latest/help/tasks/nunit2.html

"Runs tests using the NUnit V2.2 framework"

您可以与集绑定重定向排序了这一点,但我认为该建议只是使用南特<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运行此和单元测试输出似乎仍然正常行为。

+0

谢谢,它有助于了解通常的解决方法! – 2012-05-29 17:53:26

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

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

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