我有一堆项目的解决方案,其中一些也有测试项目。这些都是为Any CPU
平台编译的。
在TeamCity中,我有NUnit 2.6.4的构建配置,我在其上指定Platform: auto (MSIL)
和Version: 4.0
。
当我运行构建时,测试失败并显示以下消息:
NUnit error running tests in 'C:\BuildAgent\work\a58fc6cd9bf63032\JsonApi.Tests\obj\Release\JsonApi.Tests.dll' assembly
Loading assembly is compiled for v4.0.30319, MSIL
NUnit runner runtime is v4.0.30319, x64
更奇怪的是,当我刚刚关闭“首先运行最近失败的测试”(并且更改没有别的)时,我得到了以下内容:
NUnit error running tests in 'C:\BuildAgent\work\a58fc6cd9bf63032\JsonApi.Owin.Tests\obj\Release\JsonApi.Owin.Tests.dll' assembly
Loading assembly is compiled for v4.0.30319, MSIL
NUnit runner runtime is v4.0.30319, x86
请注意,在一种情况下,跑步者是x86,而在另一种情况下,跑步者是x64。在这两种情况下,它们都是否成功加载为MSIL编译的程序集。
我假设我的构建设置已关闭,但是什么?
答案 0 :(得分:8)
根据您提供的more detailed log,构建失败的真正原因似乎是:
**\bin\**\*.Tests.dll
我认为这恰好是因为我在评论中链接的SO thread中提到的原因,即您正在运行来自 obj 文件夹的测试,而它应该是仓即可。但这仍然只是猜测,因为您没有提供NUnit步骤配置。
要解决此问题,您应该明确说明具有单元测试的程序集所在的路径。像这样:
$routeProvider.when("/management", {
templateUrl : "/experiment/management.html",
controller: 'managementController',
}
答案 1 :(得分:0)
就我而言,我的文件夹正确,但是TeamCity已设置为使用nunit2.X进行测试,而我是针对nunit3进行编译的。在TeamCity更新测试步骤可以解决此问题。
答案 2 :(得分:0)
我也对此消息有类似的问题
检查正确的.NET Framework版本和过程平台(x64,x86,MSIL)是否同时用于测试运行程序设置和此计算机上涉及的程序集。
在我的案例中,原因是NUnit框架在代码和Teamcity运行器中具有不同的版本。