代码之家  ›  专栏  ›  技术社区  ›  Brett Rigby

NET4.0下的单元测试和测试运行程序问题

  •  2
  • Brett Rigby  · 技术社区  · 15 年前

    我们正在尝试将.NET3.5解决方案迁移到.NET4.0,但是测试框架遇到了一些问题,这些测试框架可以使用使用.NETFramework版本4.0构建的程序集进行操作。

    以前,我们在NAnt脚本中使用nunit2.4.3.0和ncover1.5.8.0,但是nunit2.4.3.0不喜欢.net4.0项目。因此,我们在测试项目中升级到了NUnit框架的更新版本,但随后发现ncover1.5.8.0不支持此版本的NUnit。

    然后我们尝试使用Gallio的Icarus测试运行器GUI,但是发现这个和MbUnit只支持3.5版本的.Net Frameword,结果是“测试将被忽略”。

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Brett Rigby    15 年前

    对-我自己解决了。如果其他人也有同样的问题的话,就这样吧。

    NUnit 2.5.5 is now out 这支持使用.NETFrameworkV4.0构建项目,但您必须使用 附加参数 ,即 /框架=4.0.30319 ,在NAnt中使用时,通过NCover,它看起来像这样:

    <exec program="C:\Program Files\TestDriven.NET 2.0\NCover\1.5.8\NCover.Console.exe">
     <arg value="&quot;C:\Program Files\NUnit 2.5.5\bin\net-2.0\nunit-console.exe&quot;"/>
     <arg value="&quot;bin/release/myProject.Test.dll&quot; /framework=4.0.30319"/>
     <arg value="/xml"/>
     <arg value="bin/release/myProject.Test-dll-results.xml"/>
     <arg value="//x"/>
     <arg value="bin/release/myProject.Test-dll-coverage-results.xml"/>
     <arg value="//q"/>
     <arg value="//a"/>
     <arg value="myProject.Test"/>
    </exec> 
    

    只需将NUnit升级到2.5.5(以及添加此标志),现在只需对构建脚本进行很少的更改就可以工作,这很好。

    总之:

    我的NAnt脚本调用NCover 1.5.8,然后调用NUnit 2.5.5,它测试使用.NET4.0构建的单元测试程序集.dll。NUnit生成第一个输出文件(bin/release/myProject.Test dll results.xml),然后由NCover获取,并处理为第二个输出结果文件(bin/release/myProject.Test dll coverage results.xml),它可以简单地包含在Cruise Control的ccnet.config文件中,以便在每次构建之后自动包含在webdashboard中。