Microsoft. Configuratie-instellingen voor Testing.Platform (MTP)

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):

  1. Opdrachtregelargumenten (bijvoorbeeld --results-directory)
  2. Omgevingsvariabelen
  3. instellingen voortestconfig.json
  4. 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:

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.

Zie ook