我有一个带有NUnit测试的DLL。当TeamCity尝试将其作为构建步骤运行时,该DLL中的一些测试(并非全部)失败。但是,当我使用NUnit的独立版本(相同版本)运行它们(与TC在同一台计算机上)时,所有测试都通过了。
我已经尽力从TC复制设置,但是当测试在同一台计算机上运行时,我仍然得到不同的结果。
运行NUnit控制台时,我使用的是TC构建的相同程序集。
这些是我在“ nunit-console.exe”中使用的参数:
PS Downloads\NUnit-2.6.4\bin> .\nunit-console.exe "pathToDll" /framework:net-4.0 /process:multiple
这就是我在TC中使用的语言。
这些是文本中的TC设置:
是否有任何线索可能造成这种差异,或者是否知道TC在NUnit上的运行情况如何,所以我可以尝试在我的开发机上复制它?
通过TC测试失败时,我得到的实际错误是:
System.IO.FileLoadException : Could not load file or assembly 'Castle.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我在该版本的Castle.Core的TC和运行该计算机的计算机上都搜索了整个解决方案,但没有找到。我不明白为什么仅在TC运行该文件时才尝试加载此文件,而没有其他时间...
我无法找到TC使用的实际NUnit运行器。有人知道那儿住吗?
我尝试过的事情:
从TC计算机中删除名称为Castle.Core的每个文件/文件夹/ dll,并重建项目。
通过nunit-console
和nunit GUI
(带有或不带有“项目”)运行NUnit DLL
预先感谢
PS。是的,我知道我们应该更新到NUnit 3 .DS