我们在不同的 DLL 中有一些单元测试。这些 DLL 也包含我们的主要代码,因此它们之间确实存在一些依赖关系,尽管我认为测试不应该跨越 DLL 边界。但是,我们在链接器命令行上为一堆 DLL 做了很多 /DELAYLOAD,但不是直接在彼此之间。
如果我们使用命令行加载测试:
vstest.console.exe dll1.dll dll2.dll /platform:x86 /UseVsixExtensions:true /inIsolation
它有效,但是,如果我们使用命令行
vstest.console.exe dll2.dll dll1.dll /platform:x86 /UseVsixExtensions:true /inIsolation
当它开始执行dll1.dll
.
我们得到的错误信息是:
Failed dll1_test1
Error Message:
Failed to set up the execution context to run the test
并为该 DLL 中的所有测试重复该消息。
不过,这似乎不是 64 位版本的问题。在 VS IDE 中运行所有测试时也不会发生这种情况。
有谁知道从哪里开始寻找确定为什么顺序对 32 位案例很重要?