Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MTP ondersteunt het gebruik van configuratiebestanden en omgevingsvariabelen om het gedrag van het testplatform te configureren. In dit artikel worden de configuratie-instellingen beschreven die u kunt gebruiken om het testplatform te configureren.
testconfig.json
Het testplatform maakt gebruik van een configuratiebestand met de naam [appname].testconfig.json om het gedrag van het testplatform te configureren. Het testconfig.json-bestand is een JSON-bestand dat configuratie-instellingen voor het testplatform bevat.
Het bestand testconfig.json heeft de volgende structuur:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
Het platform detecteert en laadt automatisch het [appname].testconfig.json bestand in de uitvoermap van het testproject (dicht bij het uitvoerbare bestand).
Wanneer u Microsoft.Testing.Platform.MSBuildgebruikt, kunt u gewoon een testconfig.json bestand maken dat automatisch wordt gewijzigd in [appname].testconfig.json en naar de uitvoermap van het testproject wordt verplaatst.
Vanaf MTP 1.5 kunt u het opdrachtregelargument --config-file gebruiken om het pad naar de testconfig.jsonop te geven. Dit bestand heeft voorrang op het bestand [appname].testconfig.json.
Notitie
Het [appname].testconfig.json bestand wordt overschreven op volgende builds.
Een gecentraliseerde testconfig.json gebruiken
Als u één testconfig.json wilt delen in meerdere testprojecten, kunt u deze op een centrale locatie plaatsen en doorgeven via --config-file. Wanneer MSBuild beschikbaar is (bijvoorbeeld dotnet test of dotnet run), kunt u de TestingPlatformCommandLineArguments eigenschap MSBuild gebruiken om het argument automatisch door te geven. Als u dit toevoegt aan een Directory.Build.props in de hoofdmap van de opslagplaats, zorgt u ervoor dat alle testprojecten dezelfde configuratie gebruiken:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Prioriteit van configuratie
Wanneer dezelfde instelling op meerdere manieren kan worden opgegeven, wordt deze door MTP omgezet in de volgende volgorde (eerste match wins):
- Opdrachtregelargumenten (bijvoorbeeld
--results-directory) - Omgevingsvariabelen
- instellingen voortestconfig.json
- Ingebouwde standaardinstellingen
Opties voor platforms
De platformOptions sectie van het bestandtestconfig.json configureert het kerngedrag van het testplatform. De volgende tabel bevat alle ondersteunde platformopties:
| Entry | Verstek | Description |
|---|---|---|
resultDirectory |
TestResults |
De map waarin de testresultaten worden geplaatst. Dit kan een relatief pad zijn (opgelost vanuit de huidige werkmap) of een absoluut pad. De --results-directory opdrachtregeloptie heeft voorrang. |
exitProcessOnUnhandledException |
false |
Wanneer deze optie is ingesteld true, wordt het testhostproces onmiddellijk afgesloten bij niet-verwerkte uitzonderingen in plaats van een probleemloos afsluiten toe te staan. De TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION omgevingsvariabele (waarden 1 of 0) heeft voorrang. |
Notitie
Er zijn aanvullende interne platformopties voor geavanceerde scenario's (zoals time-outs voor benoemde pijpen voor testhostcontrollers). Deze opties zijn bedoeld voor gebruik van infrastructuur en worden hier niet behandeld.
Voorbeeld:
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
Extensieopties zijn alleen via de CLI beschikbaar
Extensiekenmerken zoals crashdump, hangdump, opnieuw proberen, TRX-rapporten en codedekking kunnen niet worden geconfigureerd via testconfig.json. Deze functies worden uitsluitend geconfigureerd via opdrachtregelargumenten.
Zie de naslaginformatie over MTP CLI-opties voor een volledig overzicht van opdrachtregelopties.
Frameworkspecifieke instellingen testen
Testframeworks kunnen hun eigen configuratiesecties definiëren in het testconfig.json-bestand . Raadpleeg de documentatie voor uw testframework:
- MSTest: MSTest configureren — testconfig.json
- xUnit.net v3: xUnit.net testconfig.json
- NUnit: Zie documentatie over NUnit voor de meest recente Microsoft. Testing.Platform-ondersteuning.
- TUnit: Zie documentatie over TUnit voor de meest recente Microsoft. Testing.Platform-ondersteuning.
Voorbeeld van testconfig.json
In het volgende voorbeeld ziet u een testconfig.json-bestand waarmee platformopties en MSTest-instellingen worden geconfigureerd:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migreren van .runsettings naar testconfig.json
Als u migreert vanuit een RUNETTINGS-bestand , worden in de volgende tabel algemene instellingen toegewezen aan hun testconfig.json equivalenten of alternatieven:
| .runsettings-instelling | testconfig.json equivalent | Aantekeningen |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Geen equivalent | Parallellisme op procesniveau wordt beheerd door dotnet test --max-parallel-test-modules of MSBuild-optie /m . |
MSTest/* |
mstest.* |
Zie MSTest configureren : testconfig.json. |
xUnit/* |
xUnit.* |
Zie xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
Uitsluitend CLI | Gebruik --report-trx of vergelijkbare CLI-opties. |
DataCollectionRunSettings (schuld) |
Alleen CLI | Gebruik --crashdump en --hangdump CLI-opties. Zie Crash- en hangdumps. |
DataCollectionRunSettings (dekking) |
Uitsluitend CLI | Gebruik --coverage de CLI-optie. Zie codedekking. |
TestRunParameters |
--test-parameter CLI |
Gebruik --test-parameter key=value op de opdrachtregel. |
Omgevingsvariabelen
Omgevingsvariabelen kunnen worden gebruikt om bepaalde runtimeconfiguratiegegevens op te geven.
Notitie
Omgevingsvariabelen hebben voorrang op configuratie-instellingen in het testconfig.json-bestand.
omgevingsvariabele TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION
Wanneer dit is ingesteld 1, wordt het testhostproces onmiddellijk afgesloten bij niet-verwerkte uitzonderingen. Als deze optie is ingesteld 0, staat het platform een probleemloos afsluiten toe. Deze instelling heeft voorrang op de platformOptions:exitProcessOnUnhandledException configuratie.
omgevingsvariabele TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT
Overschrijft de standaardtime-out (300 seconden) die wordt gebruikt voor benoemde pijpverbindingen tussen de testhostcontroller en testhost. De waarde moet een TimeSpan-compatibele tekenreeks zijn.
omgevingsvariabele TESTINGPLATFORM_UI_LANGUAGE
Vanaf MTP 1.5 stelt deze omgevingsvariabele de taal van het platform in voor het weergeven van berichten en logboeken met behulp van een landinstellingswaarde, zoals en-us. Deze taal heeft voorrang op de talen van Visual Studio en .NET SDK. De ondersteunde waarden zijn hetzelfde als voor Visual Studio. Zie de sectie over het wijzigen van de taal van het installatieprogramma in de documentatie voor de installatie van Visual Studiovoor meer informatie.
omgevingsvariabele TESTINGPLATFORM_DIAGNOSTIC
Als deze optie is ingesteld op 1, schakelt u de diagnostische logboekregistratie in.
omgevingsvariabele TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY
Definieert het uitgebreidheidsniveau wanneer diagnostische gegevens zijn ingeschakeld. De beschikbare waarden zijn Trace, Debug, Information, Warning, Errorof Critical.
omgevingsvariabele TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY
De uitvoermap van de diagnostische logregistratie. Als dit niet is opgegeven, wordt het bestand gegenereerd in de standaardmap TestResults .
omgevingsvariabele TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX
Het voorvoegsel voor de naam van het logboekbestand. Wordt standaard ingesteld op "log_".
omgevingsvariabele TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE
Dwingt de ingebouwde bestandslogger om logboeken synchroon te schrijven. Handig voor scenario's waarin u geen logboekvermeldingen wilt verliezen (als het proces vastloopt). Dit vertraagt de uitvoering van de test.
omgevingsvariabele TESTINGPLATFORM_EXITCODE_IGNORE
Een door puntkomma's gescheiden lijst met afsluitcodes die moeten worden genegeerd. Wanneer een exitcode wordt genegeerd, retourneert het proces in plaats daarvan 0. Negeert bijvoorbeeld TESTINGPLATFORM_EXITCODE_IGNORE=2;8 testfouten en scenario's zonder tests.
Notitie
Omgevingsvariabelen met betrekking tot diagnostische gegevens hebben voorrang op de bijbehorende --diagnostic-* opdrachtregelargumenten.