We have some unit tests in different DLLs. These DLLs house our main code as well, so they do have some dependency between them, though I don't think that the tests should cross the DLL boundary. However, we do a lot of /DELAYLOAD on the linker command line for a bunch of DLLs, but not directly between each other.
If we load the test using the command line:
vstest.console.exe dll1.dll dll2.dll /platform:x86 /UseVsixExtensions:true /inIsolation
it works, However, if we using the command line
vstest.console.exe dll2.dll dll1.dll /platform:x86 /UseVsixExtensions:true /inIsolation
it fails when it starts to execute the tests in dll1.dll
.
The error message we get is:
Failed dll1_test1
Error Message:
Failed to set up the execution context to run the test
and repeats that message for all the tests in that DLL.
This doesn't seem to be an issue on the 64 bit builds though. It also doesn't occur when running all the tests in the VS IDE.
Does anyone know where to start looking to determine why the order matters for the 32 bit case?