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.
MTP unterstützt die Verwendung von Konfigurationsdateien und Umgebungsvariablen zum Konfigurieren des Verhaltens der Testplattform. In diesem Artikel werden die Konfigurationseinstellungen beschrieben, die Sie zum Konfigurieren der Testplattform verwenden können.
testconfig.json
Die Testplattform verwendet eine Konfigurationsdatei mit dem Namen [appname].testconfig.json , um das Verhalten der Testplattform zu konfigurieren. Die testconfig.json Datei ist eine JSON-Datei, die Konfigurationseinstellungen für die Testplattform enthält.
Die dateitestconfig.json hat die folgende Struktur:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
Die Plattform erkennt und lädt automatisch die [appname].testconfig.json Datei im Ausgabeverzeichnis des Testprojekts (in der Nähe der ausführbaren Datei).
Wenn Sie Microsoft.Testing.Platform.MSBuild verwenden, können Sie einfach eine testconfig.json Datei erstellen, die automatisch in [appname] umbenannt.testconfig.jsonund in das Ausgabeverzeichnis des Testprojekts verschoben wird.
Ab MTP 1.5 können Sie das Befehlszeilenargument --config-file verwenden, um den Pfad zum testconfig.jsonanzugeben. Diese Datei hat Vorrang vor der [appname]-.testconfig.json Datei.
Hinweis
Die [appname]-.testconfig.json Datei wird bei nachfolgenden Builds überschrieben.
Verwenden einer zentralisierten testconfig.json
Wenn Sie eine einzelne testconfig.json von mehreren Testprojekten gemeinsam nutzen möchten, können Sie sie an einem zentralen Ort ablegen und über --config-file angeben. Wenn MSBuild verfügbar ist (z. B. dotnet test oder dotnet run), können Sie die MSBuild-Eigenschaft TestingPlatformCommandLineArguments verwenden, um das Argument automatisch zu übergeben. Wenn Sie dies zu einem Directory.Build.props im Repositorystamm hinzufügen, wird sichergestellt, dass alle Testprojekte dieselbe Konfiguration verwenden:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Konfigurationsrangfolge
Wenn dieselbe Einstellung auf mehrere Arten angegeben werden kann, wertet MTP diese in der folgenden Reihenfolge aus (die erste Übereinstimmung zählt):
- Befehlszeilenargumente (z. B
--results-directory. ) - Umgebungsvariablen
- einstellungen fürtestconfig.json
- Voreingestellte Standardwerte
Plattformoptionen
Der platformOptions Abschnitt der dateitestconfig.json konfiguriert das Kernverhalten der Testplattform. In der folgenden Tabelle sind alle unterstützten Plattformoptionen aufgeführt:
| Eingabe | Vorgabe | Description |
|---|---|---|
resultDirectory |
TestResults |
Das Verzeichnis, in dem die Testergebnisse platziert werden. Kann ein relativer Pfad (aufgelöst aus dem aktuellen Arbeitsverzeichnis) oder ein absoluter Pfad sein. Die --results-directory Befehlszeilenoption hat Vorrang. |
exitProcessOnUnhandledException |
false |
Wenn auf true festgelegt, wird der Testhostprozess bei unbehandelten Ausnahmen sofort beendet, anstatt ein geordnetes Herunterfahren zu ermöglichen. Die TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION Umgebungsvariable (Werte 1 oder 0) hat Vorrang. |
Hinweis
Für erweiterte Szenarien (z. B. Named-Pipe-Timeouts für Testhost-Controller) gibt es zusätzliche interne Plattformoptionen. Diese Optionen sind für die Infrastrukturnutzung vorgesehen und werden hier nicht behandelt.
Beispiel:
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
Erweiterungsoptionen sind nur über die Befehlszeile verfügbar
Erweiterungsfeatures wie Absturzabbild, Hang Dump, Wiederholung, TRX-Berichte und Codeabdeckung können nicht über testconfig.jsonkonfiguriert werden. Diese Features werden ausschließlich über Befehlszeilenargumente konfiguriert.
Eine vollständige Referenz zu Befehlszeilenoptionen finden Sie in der MTP CLI-Optionsreferenz.
Testframework-spezifische Einstellungen
Testframeworks können ihre eigenen Konfigurationsabschnitte in der dateitestconfig.json definieren. Weitere Informationen finden Sie in der Dokumentation für Ihr Testframework:
- MSTest: Konfigurieren von MSTest – testconfig.json
- xUnit.net v3: xUnit.net testconfig.json
- NUnit: In der NUnit-Dokumentation finden Sie die neuesten Microsoft. Testing.Platform-Unterstützung.
- TUnit: In der TUnit-Dokumentation finden Sie die neuesten Microsoft. Testing.Platform-Unterstützung.
Beispiel-testconfig.json
Das folgende Beispiel zeigt eine testconfig.json Datei, die Plattformoptionen und MSTest-Einstellungen konfiguriert:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migrieren von .runsettings zu testconfig.json
Wenn Sie aus einer Runsettings-Datei migrieren, werden in der folgenden Tabelle allgemeine Einstellungen ihren testconfig.json Entsprechungen oder Alternativen zugeordnet:
| .runsettings-Einstellung | Äquivalent zu testconfig.json | Hinweise |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Keine Entsprechung | Die Parallelität auf Prozessebene wird durch dotnet test --max-parallel-test-modules oder die MSBuild-Option /m gesteuert. |
MSTest/* |
mstest.* |
Siehe Konfigurieren von MSTest – testconfig.json. |
xUnit/* |
xUnit.* |
Siehe xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
Nur CLI | Verwenden Sie --report-trx oder ähnliche CLI-Optionen. |
DataCollectionRunSettings (Schuldzuweisung) |
Nur CLI | Verwenden Sie --crashdump und --hangdump CLI-Optionen. Siehe Absturz- und Absturzabbilder. |
DataCollectionRunSettings (Abdeckung) |
Nur CLI | Verwenden Sie die CLI-Option --coverage. Siehe Codeabdeckung. |
TestRunParameters |
--test-parameter CLI |
Verwenden Sie --test-parameter key=value in der Befehlszeile. |
Umgebungsvariablen
Umgebungsvariablen können verwendet werden, um einige Laufzeitkonfigurationsinformationen bereitzustellen.
Hinweis
Umgebungsvariablen haben Vorrang vor Konfigurationseinstellungen in der dateitestconfig.json .
Umgebungsvariable TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION
Bei Festlegung auf 1, wird der Testhostprozess sofort bei unbehandelten Ausnahmen beendet. Wenn sie auf " 0" festgelegt ist, ermöglicht die Plattform das ordnungsgemäße Herunterfahren. Diese Einstellung hat Vorrang vor der platformOptions:exitProcessOnUnhandledException Konfiguration.
Umgebungsvariable TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT
Überschreibt das Standardtimeout (300 Sekunden), das für benannte Pipeverbindungen zwischen dem Testhostcontroller und dem Testhost verwendet wird. Der Wert muss eine TimeSpan-kompatible Zeichenfolge sein.
Umgebungsvariable TESTINGPLATFORM_UI_LANGUAGE
Ab MTP 1.5 legt diese Umgebungsvariable die Sprache der Plattform fest, um Nachrichten und Protokolle mithilfe eines Gebietsschemawerts wie en-us anzuzeigen. Diese Sprache hat Vorrang vor den Sprachen Visual Studio und .NET SDK. Die unterstützten Werte sind identisch mit denen für Visual Studio. Weitere Informationen finden Sie im Abschnitt zum Ändern der Sprache des Installationsprogramms in der Visual Studio-Installationsdokumentation.
Umgebungsvariable TESTINGPLATFORM_DIAGNOSTIC
Wenn auf 1 eingestellt, wird die Diagnoseprotokollierung aktiviert.
Umgebungsvariable TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY
Definiert die Ausführlichkeitsstufe, wenn die Diagnose aktiviert ist. Verfügbare Werte sind Trace, Debug, Information, Warning, Error oder Critical.
Umgebungsvariable TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY
Das Ausgabeverzeichnis der diagnostischen Protokollierung. Wenn nicht angegeben, wird die Datei im Standardverzeichnis TestResults generiert.
Umgebungsvariable TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX
Das Präfix für den Namen der Protokolldatei. Wird standardmäßig auf "log_" festgelegt.
Umgebungsvariable 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.
Umgebungsvariable TESTINGPLATFORM_EXITCODE_IGNORE
Eine durch Semikolons getrennte Liste der zu ignorierenden Ausgangscodes. Wenn ein Exitcode ignoriert wird, gibt der Prozess stattdessen 0 zurück. Beispielsweise ignoriert TESTINGPLATFORM_EXITCODE_IGNORE=2;8 Testfehler und Szenarien, in denen keine Tests ausgeführt wurden.
Hinweis
Diagnosebezogene Umgebungsvariablen haben Vorrang vor den entsprechenden --diagnostic-* Befehlszeilenargumenten.