6

我在使用命令行 NUnit 测试运行程序运行测试时遇到问题。

我在 x64 机器上使用带有 .NET 4 的 2.5.4 版本。

使用以下行会导致失败“无法加载文件或程序集 'bar' 或其依赖项之一。系统找不到指定的文件。”

nunit-console-x86 foo.dll bar.dll /framework=4.0.30319

如果我反转 dll 文件名,它会抱怨找不到“foo”...

如果我像这样单独运行它们,它会起作用:

nunit-console-x86 foo.dll /framework=4.0.30319

如果我运行,第二个文件的测试也有效:

nunit-console-x86 bar.dll /framework=4.0.30319

在将我们的项目升级到 4.0 之前,我们使用了 NUnit 2.5.2 和相同的命令行工具选项,此时运行器可以很好地处理多个程序集。似乎同时对多个文件运行测试的能力被破坏了......

任何人都可以看到相同的行为,或者它是否有效表明我的环境以某种方式被破坏了?

/每

4

2 回答 2

3

程序集加载行为在 2.5.4 和 2.5.3 之间发生了变化。它给我们带来了问题,所以我们恢复到 2.5.3,因为它仍然支持 4.0 框架。

我们在 msbuild 脚本中使用带有多个程序集的 nunit-console.exe 2.5.3,如下所示:

    <Exec Command="%22$(NUnit_Install_Directory)bin\net-2.0\nunit-console.exe%22
 /noshadow @(TestableAssemblies, ' ')  /xml $(BuildFilesPath)\NUnit-Results.xml" />

在执行时,它会这样填写(为便于阅读而编辑):

"c:\Program Files\NUnit 2.5.3\bin\net-2.0\nunit-console.exe" /noshadow D:\BuildAgent\GojiSoft.Application.Test\bin\Release\GojiSoft.Application.Test.dll D: \BuildAgent\GojiSoft.Common.Test\bin\Release\GojiSoft.Common.Test.dll /xml D:\BuildAgent\work\2f016459feee51ce\Build\NUnit-Results.xml

我们不使用 64 位机器进行单元测试,所以 YMMV。

我有一篇关于您应该对 nunit-console-x86.exe.config 进行额外修改的博客文章:Getting .Net 4.0, Team City, MSBuild and Nunit to play nice。

于 2010-04-16T16:46:38.623 回答
0

我有同样的问题。我通过在包含多个 dll 的 GUI 中创建一个 nunit 项目来解决它。然后我可以用 nunit-console 运行它。

于 2010-04-21T15:22:57.940 回答