ho seguito Yanhua di Microsoft article link e hanno trovato una soluzione che mi piaceva meglio di eliminazione dei file casuali:
Uso vstest.console.exe invece di MSTest.exe.
Nota, gli argomenti per vstest.console.exe sono diversi. Vuole un elenco separato da spazi di di test.dll
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "TestProject1.dll"
Qui è la mia messa a punto msbuild che fa la stessa cosa:
<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>
Questo è un ExecutionEngineException, un arresto duro nel CLR. Normalmente causato da un codice non gestito che corrompe l'heap della garbage collection. Test fallito, forse. Qualunque problema misterioso di licenza tu abbia sarà probabilmente un * lotto * più facile da correggere che provare a risolvere questo crash. –
Grazie per il suggerimento. La cosa strana è che quei test funzionano bene su un altro build build che ho creato oggi. Disponiamo di licenze VS2010 Prof che non supportano i tccmdline MSTest con il rilevamento degli assiemi e il nostro IT non acquisterà licenze di aggiornamento. – icywiener
Sembra che Update1 o 2 di VS2012 rompa i test con .NET 3.5, quindi ha fatto una disinstallazione completa e reinstallato senza aggiornamenti e ora i nostri test sono di nuovo in esecuzione. – icywiener