我们在mstest中使用moq和AutoMoq,并且自升级到VS2012和ReSharper 7后,我们使用mstest测试运行正常,但在使用R#unit test runner时失败:
Test method [...] threw exception:
System.IO.FileLoadException: Could not load file or assembly
'Moq, Version=3.1.416.3, Culture=neutral, PublicKeyToken=69f491c39445e920'
or one of its dependencies. The located assembly's manifest definition does not
match the assembly reference. (Exception from HRESULT: 0x80131040)
AutoMoq是针对Moq 3.1.416.3构建的,我们使用4.0.10827.0,并在app.config中进行了程序集重定向。这在本地使用mstest和远程在TFS构建服务器上运行良好,但在使用R#单元测试运行器时则不行。
经过大量的搜索后,我在JetBrains论坛上只找到了一个thread,没有解决方案,所以我也将问题提到了。
答案 0 :(得分:6)
mstest中存在一个已确认的错误,指出程序集重定向不起作用。有一个已知的解决方法:如果你有一个testsettings文件程序集重定向工作。我猜R#不会像mstest一样运行测试。我认为mstest现在实际上忽略了app.config,但这是我的推测。 R#报告了一个问题:
http://youtrack.jetbrains.com/issue/RSRP-329567
这是他们确认错误的ms论坛帖子:
http://social.msdn.microsoft.com/Forums/en-US/vsunittest/thread/234926d1-42c0-4ebb-af39-1626e72f6c39
我希望我们可以投票支持在某处修复这个错误...
此处还有另一篇关于SO的帖子也有同样的问题: