3

我们将 moq 和 AutoMoq 与 mstest 一起使用,并且自从升级到 VS2012 和 ReSharper 7 后,我们的测试使用 mstest 运行良好,但在使用 R# 单元测试运行器时失败:

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 论坛上找到了一个线程,没有解决方案,所以我也将问题提交给 SO。

4

1 回答 1

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 的帖子也有同样的问题:

程序集绑定在 mstest 中不起作用

于 2012-09-14T06:52:31.927 回答