Ich habe einen Build, der auf Visual Studio Team Services (früher Visual Studio Online) ausgeführt wird. Ich möchte einige Assemblies von Code Coverage-Berechnungen ausschließen. Basierend auf einem Format habe ich gelesen frommanysources. Ich habe eine .runsettings Datei wie folgt erstellt:Assemblys aus Codeabdeckung in Visual Studio-Teamdienste ausschließen
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage"
uri="datacollector://Microsoft/CodeCoverage/2.0"
assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Exclude>
<ModulePath>*AWSSDK*</ModulePath>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
Aber das erzeugt den folgenden Fehler:
Testausführung starten, bitte warten ... Fehler: System.InvalidOperationException: Kann nicht synchronen und asynchronen Betrieb mischen auf Prozessstrom. bei System.Diagnostics.Process.get_StandardError() bei Microsoft.VisualStudio.Coverage.Vanguard.Wait() bei Microsoft.VisualStudio.Coverage.Vanguard.Start (String output, DataCollectionContext context) bei Microsoft.VisualStudio.Coverage. DynamicCoverageDataCollectorImpl.StartVanguard (DataCollectionContext context) bei Microsoft.VisualStudio.Coverage.UnitTestDataCollector.SessionStart (Object sender, SessionStartEventArgs e) bei Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector.SessionStart (Object sender, SessionStartEventArgs e) bei System.EventHandler`1 .Invoke (Object Sender, TEventArgs e) bei WEX.TestExecution.TaefDataCollectionEvents.OnSessionStart (SessionStartEventArgs e) bei WEX.TestExecution.Dat aCollectorTestMode.Initialize (ITestModeSettings-Einstellungen, ICallbackRegistrar callbackRegistrar) Information: Darüber hinaus können Sie versuchen, '/ UseVsixExtensions' Befehl anzugeben, wenn der Testentdecker & Executor auf dem Computer als VSIX-Erweiterungen installiert ist und Ihre Installation VSIX-Erweiterungen unterstützt. Beispiel: vstest.console.exe myTests.dll/UseVsixExtensions: true VSTest Testlauf mit Exitcode fehlgeschlagen: 1
Ja, einige der Tests verwenden async/await. Die gleiche .runsettings-Datei funktioniert in Visual Studio 2015 einwandfrei. Wenn ich so vorgehe und die folgende Option hinzufüge: /UseVsixExtensions:true
, ist das Ergebnis dasselbe. Wie kann ich das beheben?
Und mit der Runsettings-Datei, die Sie zur Verfügung gestellt, sollte kein Test gefunden werden. Das Format sollte ". * AWSSDK. * " sein. –
Können Sie die Variable "system.debug" auf "true" setzen, wenn Sie den Build in eine Warteschlange stellen und dann die gesamten Protokolle freigeben? –
Überraschenderweise hat das Ändern des Inhalts von 'ModulePath' nach Ihrer Empfehlung das Problem gelöst. Stört mich, dass die "InvalidOperationException" ist irreführend, vielleicht sogar einige schlechte Ausnahmebehandlung? [Hier sind die Protokolle] (https://onedrive.live.com/redir?resid=47707C5E85187AB1!450&authkey=!AHgwV59SruF7j3Q&heint=file%2czip) mit system.debug = true für einen Build, wo ModulePath "* AWSSDK *' (und schlägt fehl). – Snixtor