Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
MTP stöder användning av konfigurationsfiler och miljövariabler för att konfigurera testplattformens beteende. I den här artikeln beskrivs de konfigurationsinställningar som du kan använda för att konfigurera testplattformen.
testconfig.json
Testplattformen använder en konfigurationsfil med namnet [appname].testconfig.json för att konfigurera testplattformens beteende. Den testconfig.json filen är en JSON-fil som innehåller konfigurationsinställningar för testplattformen.
Filen testconfig.json har följande struktur:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
Plattformen identifierar och läser automatiskt in [appname].testconfig.json fil som finns i utdatakatalogen för testprojektet (nära den körbara filen).
När du använder Microsoft.Testing.Platform.MSBuildkan du helt enkelt skapa en testconfig.json fil som automatiskt kommer att byta namn till [appname].testconfig.json och flyttas till utdatakatalogen för testprojektet.
Från och med MTP 1.5 kan du använda kommandoradsargumentet --config-file för att ange sökvägen till testconfig.json. Den här filen har företräde framför filen [appname].testconfig.json.
Obs
Filen [appname].testconfig.json skrivs över på efterföljande versioner.
Använda en centraliserad testconfig.json
Om du vill ha en enda testconfig.json delas mellan flera testprojekt kan du placera den på en central plats och skicka den via --config-file. När MSBuild är tillgängligt (till exempel dotnet test eller dotnet run) kan du använda TestingPlatformCommandLineArguments egenskapen MSBuild för att automatiskt skicka argumentet. Om du lägger till detta i en Directory.Build.props på lagringsplatsens rot ser du till att alla testprojekt använder samma konfiguration:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Konfigurationsprioritet
När samma inställning kan anges på flera sätt löser MTP den i följande ordning (första matchningen vinner):
- Kommandoradsargument (till exempel
--results-directory) - Miljövariabler
- testconfig.json inställningar
- Inbyggda standardvärden
Plattformsalternativ
Avsnittet platformOptions i testconfig.json-filen konfigurerar testplattformens kärnbeteende. I följande tabell visas alla plattformsalternativ som stöds:
| Entry | Standardinställning | Description |
|---|---|---|
resultDirectory |
TestResults |
Katalogen där testresultaten placeras. Kan vara en relativ sökväg (tolkas utifrån den aktuella arbetskatalogen) eller en absolut sökväg. Kommandoradsalternativet --results-directory har företräde. |
exitProcessOnUnhandledException |
false |
När den är inställd på true avslutas testvärdprocessen omedelbart vid ohanterade undantag i stället för att tillåta en kontrollerad avstängning. Miljövariabeln TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION (värden 1 eller 0) har företräde. |
Obs
Det finns ytterligare interna plattformsalternativ för avancerade scenarier (till exempel tidsgränser för namngivna rör för testvärdkontrollanter). De här alternativen är avsedda för infrastrukturanvändning och beskrivs inte här.
Exempel:
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
Tilläggsalternativ kan endast användas via CLI
Tilläggsfunktioner som kraschdump, hängningsdump, återförsök, TRX-rapporter och kodtäckning kan inte konfigureras via testconfig.json. Dessa funktioner konfigureras endast via kommandoradsargument.
En fullständig referens till kommandoradsalternativ finns i referens för MTP CLI-alternativ.
Testa ramverksspecifika inställningar
Testramverk kan definiera sina egna konfigurationsavsnitt i filentestconfig.json . Se dokumentationen för ditt testramverk:
- MSTest: Konfigurera MSTest – testconfig.json
- xUnit.net v3: xUnit.net testconfig.json
- NUnit: Se NUnit-dokumentationen för stöd för den senaste versionen av Microsoft.Testing.Platform.
- TUnit: Se TUnit-dokumentationen för information om det senaste stödet för Microsoft.Testing.Platform.
Exempel testconfig.json
I följande exempel visas en testconfig.json fil som konfigurerar plattformsalternativ och MSTest-inställningar:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migrera från .runsettings till testconfig.json
Om du migrerar från en .runsettings-fil mappar följande tabell vanliga inställningar till deras testconfig.json motsvarigheter eller alternativ:
| .runsettings-inställning | motsvarigheten till testconfig.json | Notes |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Ingen motsvarighet | Parallellitet på processnivå styrs av dotnet test --max-parallel-test-modules eller MSBuild-alternativet /m . |
MSTest/* |
mstest.* |
Se Konfigurera MSTest – testconfig.json. |
xUnit/* |
xUnit.* |
Se xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
endast CLI | Använd --report-trx eller liknande CLI-alternativ. |
DataCollectionRunSettings (skuld) |
CLI endast | Använd --crashdump och --hangdump CLI-alternativ. Se Krasch- och låsningsdumpar. |
DataCollectionRunSettings (täckning) |
endast CLI | Använd --coverage CLI-alternativet. Se Kodtäckning. |
TestRunParameters |
--test-parameter CLI |
Använd --test-parameter key=value på kommandoraden. |
Miljövariabler
Miljövariabler kan användas för att tillhandahålla viss konfigurationsinformation vid körning.
Obs
Miljövariabler har företräde framför konfigurationsinställningarna i testconfig.json-filen.
TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION miljövariabel
När den är inställd på 1 avslutas testvärdsprocessen omedelbart vid ohanterade undantag. När den är inställd på 0 tillåter plattformen en kontrollerad avstängning. Den här inställningen har företräde framför konfigurationen platformOptions:exitProcessOnUnhandledException .
TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT miljövariabel
Åsidosätter standardtidsgränsen (300 sekunder) som används för named pipe-anslutningar mellan testvärdskontrollern och testvärden. Värdet måste vara en TimeSpan-kompatibel sträng.
TESTINGPLATFORM_UI_LANGUAGE miljövariabel
Från och med MTP 1.5 anger den här miljövariabeln plattformens språk för att visa meddelanden och loggar med hjälp av ett språkvärde som en-us. Det här språket har företräde framför Visual Studio- och .NET SDK-språken. De värden som stöds är desamma som för Visual Studio. Mer information finns i avsnittet om hur du ändrar installationsspråket i installationsdokumentationen för Visual Studio.
TESTINGPLATFORM_DIAGNOSTIC miljövariabel
Om värdet är inställt på 1aktiverar du diagnostikloggningen.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY miljövariabel
Definierar verbositetsnivån när diagnostik aktiveras. De tillgängliga värdena är Trace, Debug, Information, Warning, Erroreller Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY miljövariabel
Utdatakatalogen för diagnostikloggningen. Om den inte anges genereras filen i standardkatalogen TestResults .
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX miljövariabel
Prefixet för loggfilens namn. Standardinställningen är "log_".
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE miljövariabel
Tvingar den inbyggda filloggaren att synkront skriva loggar. Användbart för scenarier där du inte vill förlora några loggposter (om processen kraschar). Detta gör testkörningen långsammare.
TESTINGPLATFORM_EXITCODE_IGNORE miljövariabel
En semikolonavgränsad lista med slutkoder att ignorera. När en avslutningskod ignoreras returnerar processen 0 i stället. Till exempel ignorerar TESTINGPLATFORM_EXITCODE_IGNORE=2;8 testfel och scenarier där inga tester kördes.
Obs
Diagnostikrelaterade miljövariabler har företräde framför motsvarande --diagnostic-* kommandoradsargument.