我在使用命令行NUnit test runner运行测试时遇到问题。
我在x64计算机上使用的是带有.NET 4的2.5.4版本。
使用以下行导致失败“无法加载文件或程序集'栏'或其中一个 它的依赖关系。系统找不到指定的文件。“
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和相同的命令行工具选项,此时转轮可以很好地处理多个程序集。似乎同时在多个文件上运行测试的能力被破坏了......
任何可以看到相同行为或工作的人都表示我的环境有所破坏?
/每
答案 0 :(得分: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.
答案 1 :(得分:0)
我有同样的问题。我通过在GUI中创建一个包含多个dll的nunit项目来解决这个问题。然后我可以用nunit-console运行它。