Freigeben über


Problembehandlung bei Microsoft.Testing.Platform

Dieser Artikel enthält Anleitungen zur Problembehandlung für Microsoft.Testing.Platform.

Exitcodes

Microsoft.Testing.Platform verwendet bekannte Exitcodes, um Testfehler oder App-Fehler zu kommunizieren. Ausgangscodes beginnen bei 0 und sind nicht negativ.

Exitcode Einzelheiten
0 Der 0 Beendigungscode gibt an, dass der Erfolg erfolgreich war. Alle Tests, die für die Ausführung ausgewählt wurden, wurden abgeschlossen, und es gab keine Fehler.
1 Der 1 Beendigungscode weist auf unbekannte Fehler hin und fungiert als Allzweckfehler. Weitere Fehlerinformationen und Details finden Sie in der Ausgabe.
2 Ein Exitcode von 2 wird verwendet, um anzugeben, dass mindestens ein Testfehler aufgetreten ist.
3 Der Beendigungscode 3 gibt an, dass die Testsitzung abgebrochen wurde. Eine Sitzung kann beispielsweise mit STRG+C abgebrochen werden.
4 Der Beendigungscode 4 gibt an, dass das Setup von verwendeten Erweiterungen ungültig ist und die Testsitzung nicht ausgeführt werden kann.
5 Der Beendigungscode 5 gibt an, dass die an die Test-App übergebenen Befehlszeilenargumente ungültig sind.
6 Der Beendigungscode 6 gibt an, dass die Testsitzung ein nicht implementiertes Feature verwendet.
7 Der Beendigungscode 7 gibt an, dass eine Testsitzung nicht erfolgreich abgeschlossen werden konnte und wahrscheinlich abgestürzt ist. Es ist möglich, dass dies durch eine Testsitzung verursacht wurde, die über den Erweiterungspunkt eines Testcontrollers ausgeführt wurde.
8 Der Beendigungscode 8 gibt an, dass die Testsitzung null Tests ausgeführt hat.
9 Der Beendigungscode 9 gibt an, dass die Mindestausführungsrichtlinie für die ausgeführten Tests verletzt wurde.
10 Der Beendigungscode 10 gibt an, dass der Testadapter, das Testing.Platform Test Framework, MSTest, NUnit oder xUnit die Tests aus einem Grund der Infrastruktur, der nicht im Zusammenhang mit dem Test selbst steht, nicht ausführen konnte. Ein Beispiel dafür ist, dass keine Vorrichtung erstellt wird, die von Tests benötigt wird.
11 Der Beendigungscode 11 gibt an, dass der Testvorgang beendet wird, wenn abhängiger Prozess beendet wird.
12 Der Beendigungscode 12 gibt an, dass die Testsitzung nicht ausgeführt werden konnte, da der Client keine der unterstützten Protokollversionen unterstützt.
13 Der Beendigungscode 13 gibt an, dass die Testsitzung beendet wurde, da die angegebene Anzahl von fehlgeschlagenen Tests mithilfe --maximum-failed-tests der Befehlszeilenoption erreicht wurde. Weitere Informationen finden Sie im Abschnitt "Optionen" in der Optionsreferenz zu Microsoft.Testing.Platform CLI

Informationen zum Aktivieren der ausführlichen Protokollierung und zur Fehlerbehebung finden Sie unter Diagnoseprotokollierung.

Bestimmte Beendigungscodes ignorieren

Microsoft.Testing.Platform ist standardmäßig streng ausgelegt, ermöglicht jedoch die Konfigurierbarkeit. Daher können Benutzer entscheiden, welche Beendigungscodes ignoriert werden sollen (ein Exitcode von 0 wird anstelle des ursprünglichen Exitcodes zurückgegeben).

Verwenden Sie die --ignore-exit-code Befehlszeilenoption oder die TESTINGPLATFORM_EXITCODE_IGNORE Umgebungsvariable, um bestimmte Beendigungscodes zu ignorieren. Das zulässige Format ist eine durch Semikolons getrennte Liste der zu ignorierenden Ausgangscodes (z. B --ignore-exit-code 2;3;8. ). Ein häufiges Szenario besteht darin, zu berücksichtigen, dass Testfehler nicht zu einem Nichtzero-Exitcode führen sollten (was dem Ignorieren von Exit-Code 2entspricht).

Diagnoseprotokollierung

Die Plattform bietet integrierte Diagnoseprotokolle, die Ihnen bei der Fehlerbehebung bei der Testausführung helfen. Sie können die Diagnoseprotokollierung über Befehlszeilenoptionen oder Umgebungsvariablen aktivieren.

Befehlszeilenoptionen

Die folgenden Plattformoptionen bieten nützliche Informationen zur Problembehandlung für Ihre Test-Apps:

  • --info
  • --diagnostic
  • --diagnostic-synchronous-write
  • --diagnostic-verbosity
  • --diagnostic-file-prefix
  • --diagnostic-output-directory

Umgebungsvariablen

Sie können die Diagnoseprotokolle auch mithilfe der Umgebungsvariablen aktivieren:

Name der Umgebungsvariable Description
TESTINGPLATFORM_DIAGNOSTIC Wenn auf 1 eingestellt, wird die Diagnoseprotokollierung aktiviert.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY Definiert den Ausführlichkeitsgrad. Verfügbare Werte sind Trace, Debug, Information, Warning, Error oder Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY Das Ausgabeverzeichnis der Diagnoseprotokollierung. Wird es nicht angegeben, wird die Datei im Standardverzeichnis TestResults generiert.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX Das Präfix für den Namen der Protokolldatei. Wird standardmäßig auf "log_" festgelegt.
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE Zwingt den integrierten Dateilogger, Protokolle synchron zu schreiben. Nützlich für Szenarien, in denen keine Protokolleinträge verloren gehen sollen (bei Prozessabsturz). Dadurch wird die Testausführung verlangsamt.

Hinweis

Umgebungsvariablen haben Vorrang vor den Befehlszeilenargumenten.

Beheben von Konfigurationsfehlern

Microsoft.Testing.Platform.MSBuild

Im Folgenden finden Sie häufige Konfigurationsfehler im Zusammenhang mit Microsoft.Testing.Platform.MSBuild.

fehler CS8892: Methode "TestingPlatformEntryPoint.Main(string[])" wird nicht als Einstiegspunkt verwendet, da ein synchroner Einstiegspunkt "Program.Main(string[])" gefunden wurde.

Manuelles Definieren eines Einstiegspunkts (Main) in einem Testprojekt oder das Referenzieren eines Testprojekts aus einer Anwendung, die bereits über einen Einstiegspunkt verfügt, führt zu einem Konflikt mit dem Einstiegspunkt, der von Microsoft.Testing.Platform generiert wird. Um dieses Problem zu vermeiden, führen Sie eine der folgenden Schritte aus:

  • Entfernen Sie Ihren manuell definierten Einstiegspunkt, in der Regel Main methode in Program.cs, und lassen Sie die Testplattform eins für Sie generieren.

  • Deaktivieren Sie die Generierung des Einstiegspunkts, indem Sie die <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> MSBuild-Eigenschaft festlegen.

  • Deaktivieren Sie die transitive Abhängigkeit zu Microsoft.Testing.Platform.MSBuild vollständig, indem Sie die <IsTestingPlatformApplication>false</IsTestingPlatformApplication> MSBuild-Eigenschaft in dem Projekt festlegen, das auf ein Testprojekt verweist. Dies ist erforderlich, wenn Sie auf ein Testprojekt aus einem Nichttestprojekt verweisen, z. B. eine Konsolen-App, die auf eine Testanwendung verweist.

Microsoft.Testing.Extensions.Fakes

Fakes-Fehler „Auflösen des Profilerpfads aus den Umgebungsvariablen COR_PROFILER_PATH und COR_PROFILER ist fehlgeschlagen“.

Dieser Fehler kann auftreten, wenn nicht alle Fakes-Assemblys im Ordner "Bin" vorhanden sind.

  • Stellen Sie sicher, dass das Projekt entweder das MSTest.SDK verwendet oder auf Microsoft.Testing.Extensions.Fakes verweist.
  • Vermeiden Sie bei .NET Framework-Projekten die Einstellung <PlatformTarget>AnyCPU</PlatformTarget> , da dies dazu führt, dass NuGet nicht alle Dateien in den Ordner "bin" kopiert.