非调试模式下单元测试无法运行

6
我刚刚将我们的通用业务层项目从主分支拆分出来,并将它们包含在一个新的解决方案中。一切都编译成功,但是当我运行单元测试时,每个测试都会出现以下错误...
“Unit Test Adapter threw exception: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.”
奇怪的是,当我调试它们时,它们可以正常运行。只有在没有连接调试器的情况下运行它们时才会出现错误。
如果无法直接修复,是否有人能告诉我如何“检索LoaderExceptions属性”?
5个回答

5

有时候进行简单的清理不起作用,我也遇到了这个问题,这时我会将配置切换到“Release”状态,进行一次清理,然后再切回“Debug”状态,再进行一次清理和重建。(


在我的情况下,这解决了我的问题,因为我的项目引用有误 - 其中一个项目引用了另一个项目的发布DLL文件 - 而不是该项目本身。当被引用的项目发生变化时,就会出现问题! - n8wrl
另一个非常简单的提示:不要尝试在发布模式下运行单元测试。 - Zian Choy

3

我的“心灵调试器”显示您正在使用64位操作系统,测试适配器设置为使用64位.NET框架,而devenv设置为32位。请使用corflags强制使您的测试适配器在32位CLR上运行。

注意:由于使用了超能力,“心灵调试器”并不总是100%准确 :)


3

尝试清理解决方案并再次尝试。

还可以尝试单击“测试结果”窗口中出现的黄色栏中的链接,这有时会提供有关无法运行测试的原因的更多信息。


清理项目对我解决了问题。谢谢! - irperez

1

我遇到了相同的错误,清理没有解决问题。

我通过打开TestRunConfig文件,进入Code Coverage菜单,并将正确的SNK文件放入“重新签名密钥文件”文本框来解决这个问题。

希望这可以帮到你。


1
我遇到了同样的问题,而且并没有有意识地改变任何东西,所以对我有帮助的是打开配置管理器(生成 => 配置管理器),确保解决方案及其所有项目都设置为"Any CPU"。不知怎么回事,其中一些设置为"x86",将其改回"Any CPU"后,所有测试在调试和发布模式下都能正常运行。
希望对你有帮助。
G.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接