Ich folgte Yanhua der Microsoft article link und eine Abhilfe gefunden, dass ich besser gefallen hat als zufällige Dateien löschen:
Verwenden vstest.console.exe statt MSTest.exe.
Hinweis, die Argumente für vstest.console.exe sind unterschiedlich. Sie will eine durch Leerzeichen getrennte Liste von test.dll der
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "TestProject1.dll"
Hier ist meine msbuild Setup, das die gleiche Sache tut:
<PropertyGroup>
<MSTEST>"$(VS110COMNTOOLS)..\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"</MSTEST>
</PropertyGroup>
...
<Target Name="MyTests" >
<ItemGroup>
<!-- These Items should be evaluated at Target runtime -->
<TestFiles Include="..\Tests\**\bin\$(Configuration)\*.Test.dll" />
</ItemGroup>
<!-- Run Tests -->
<PropertyGroup>
<!--TestSuccessOrNot is the property specify whether the Test is sucess or not -->
<TestSuccessOrNot>1</TestSuccessOrNot>
</PropertyGroup>
<Exec Command="$(MSTEST) @(TestFiles, ' ')" >
<Output TaskParameter="ExitCode" PropertyName="TestSuccessOrNot"/>
</Exec>
<Error Text="Tests Failed" Condition="$(TestSuccessOrNot) == '1'" />
</Target>
Das ist eine ExecutionEngineException ist, ein harter Absturz in der CLR. Wird normalerweise von nicht verwaltetem Code verursacht, der den auf Müll gesammelten Heap beschädigt. Der Test ist vielleicht fehlgeschlagen. Was auch immer mysteriöse Lizenzprobleme Sie haben, wird wahrscheinlich viel einfacher zu beheben sein, als zu versuchen, diesen Absturz zu beheben. –
Danke für den Hinweis. Das Seltsame ist, dass diese Tests auf einem anderen Build-Agent laufen, den ich heute eingerichtet habe. Wir haben VS2010 Prof-Lizenzen, die MSTest Cmdline-Tets mit Assembly Discovery nicht unterstützen, und unsere IT wird keine Upgrade-Lizenzen kaufen. – icywiener
Es scheint, dass Update1 oder 2 von VS2012 Tests mit .NET 3.5 bricht, also eine vollständige Deinstallation und Neuinstallation ohne Updates und jetzt unsere Tests laufen wieder. – icywiener