Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
Mainmethode 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.MSBuildvollstä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.