Why are all my Visual Studio test results "Not executed"
What a PITA! The IDE doesn't show any errors. In order to determine the error you have to do this
- Open the Visual Studio command prompt
- Change to the directory where the binary output of your test project is.
- Type mstest /testcontainer:The.Name.Of.Your.Test.Assembly.dll
At the bottom of the output you will see the following text
Run has the following issue(s):
In my case it was the following:
Failed to queue test run 'Peter Morris@PETERMORRIS-PC 2009-02-09 10:00:37': Test Run deployment issue: The location of the file or directory 'C:\SomePath\SomeProject.Tests\bin\Debug\Rhino.Mocks.dll' is not trusted.
Now if VS had told me this in the IDE I could have fixed it in minutes! All you have to do is open Windows Explorer and find that DLL. Right-click on it and go to Properties. Then click the "Unblock" button.
What a complete waste of my time!
Unit tests not executed
I've found that it is good advice to never have a constructor for a unit test class. If anything in a constructor ever throws, the test will just be reported as "not executed". Put test initialization in a TestInitialize method instead. Exceptions thrown there are reported by the IDE.
Blocked Binaries
Usually you have to unblock the ZIP file itself before you extract binaries from it, and then all the binaries will be unblocked. If you try to unblock the binaries themselves the unblocking doesn't "stick".
Another reason for "Failed to queue test run 'XXX'. The path is not of a legal form." is that the account does not have a profile loaded.
E.g. when you start mstest.exe with CreateProcessAsUser() and forget to call LoadUserProfile() as well.