Microsoft.Testing.Platform (MTP) konfigurace nastavení

MTP podporuje použití konfiguračních souborů a proměnných prostředí ke konfiguraci chování testovací platformy. Tento článek popisuje nastavení konfigurace, které můžete použít ke konfiguraci testovací platformy.

testconfig.json

Testovací platforma používá konfigurační soubor s názvem [appname].testconfig.json ke konfiguraci chování testovací platformy. Soubor testconfig.json je soubor JSON, který obsahuje nastavení konfigurace testovací platformy.

Soubor testconfig.json má následující strukturu:

{
    "platformOptions": {
        "resultDirectory": "./TestResults"
    }
}

Platforma automaticky rozpozná a načte [appname].testconfig.json soubor umístěný ve výstupním adresáři testovacího projektu (blízko spustitelného souboru).

Při použití Microsoft.Testing.Platform.MSBuildmůžete jednoduše vytvořit testconfig.json soubor, který se automaticky přejmenuje na [appname].testconfig.json a přesunut do výstupního adresáře testovacího projektu.

Počínaje MTP 1.5 můžete pomocí argumentu --config-file příkazového řádku určit cestu k testconfig.json. Tento soubor má přednost před souborem [appname].testconfig.json.

Poznámka

Soubor.testconfig.json [appname] se přepíše v následných buildech.

Použijte centralizovaný testconfig.json

Pokud chcete sdílet jeden soubor testconfig.json mezi více testovacími projekty, můžete ho umístit na centrální místo a předat jej pomocí --config-file. Pokud je nástroj MSBuild k dispozici (například dotnet test nebo dotnet run), můžete argument automaticky předat pomocí vlastnosti MSBuild TestingPlatformCommandLineArguments. Přidáním do adresáře.Build.props v kořenovém adresáři úložiště zajistíte, aby všechny testovací projekty používaly stejnou konfiguraci:

<PropertyGroup>
  <TestingPlatformCommandLineArguments>
    $(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
  </TestingPlatformCommandLineArguments>
</PropertyGroup>

Priorita konfigurace

Pokud lze stejné nastavení zadat několika způsoby, MTP jej vyhodnotí v následujícím pořadí (platí první nalezená shoda):

  1. Argumenty příkazového řádku (například --results-directory)
  2. Proměnné prostředí
  3. nastavení testconfig.json
  4. Předdefinované výchozí hodnoty

Možnosti platformy

Část platformOptions souboru testconfig.json konfiguruje základní chování testovací platformy. V následující tabulce jsou uvedeny všechny podporované možnosti platformy:

Položka Výchozí Description
resultDirectory TestResults Adresář, do kterého se umístí výsledky testu. Může to být relativní cesta (přeložená z aktuálního pracovního adresáře) nebo absolutní cesta. Možnost příkazového řádku --results-directory má přednost.
exitProcessOnUnhandledException false Pokud je nastavena hodnota true, proces hostitele testu se při neošetřených výjimkách okamžitě ukončí namísto umožnění řádného ukončení. Proměnná prostředí TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION (hodnoty 1 nebo 0) má přednost.

Poznámka

K dispozici jsou další interní možnosti platformy pro pokročilé scénáře (například časové limity pojmenovaných kanálů pro řadiče hostitele testů). Tyto možnosti jsou určeny pro použití infrastruktury a nejsou zde popsány.

Příklad:

{
  "platformOptions": {
    "resultDirectory": "../../TestResults",
    "exitProcessOnUnhandledException": false
  }
}

Možnosti rozšíření jsou dostupné pouze v CLI.

Funkce rozšíření, jako jsou crash dump, hang dump, opakování, sestavy TRX a pokrytí kódu, nelze konfigurovat pomocí testconfig.json. Tyto funkce se konfigurují výhradně prostřednictvím argumentů příkazového řádku.

Úplný odkaz na možnosti příkazového řádku najdete v referenčních informacích k možnostem rozhraní příkazového řádku MTP.

Testování nastavení specifických pro architekturu

Testovací architektury mohou definovat vlastní konfigurační oddíly v souboru testconfig.json . Projděte si dokumentaci pro testovací architekturu:

Příklad testconfig.json

Následující příklad ukazuje soubortestconfig.json , který konfiguruje možnosti platformy a nastavení MSTest:

{
  "platformOptions": {
    "resultDirectory": "./TestResults"
  },
  "mstest": {
    "parallelism": {
      "enabled": true,
      "workers": 4,
      "scope": "method"
    },
    "timeout": {
      "test": 30000
    },
    "execution": {
      "considerFixturesAsSpecialTests": true
    }
  }
}

Migrace z .runsettings na testconfig.json

Pokud migrujete ze souboru .runsettings , následující tabulka mapuje běžná nastavení na jejich testconfig.json ekvivalenty nebo alternativy:

Nastavení .runsettings ekvivalent souboru testconfig.json Poznámky
RunConfiguration/ResultsDirectory platformOptions.resultDirectory
RunConfiguration/MaxCpuCount Žádný ekvivalent Paralelismus na úrovni procesu se řídí pomocí dotnet test --max-parallel-test-modules nebo volby MSBuild /m.
MSTest/* mstest.* Viz Konfigurace MSTest — testconfig.json.
xUnit/* xUnit.* Viz xUnit.net testconfig.json.
LoggerRunSettings/Loggers Pouze rozhraní příkazového řádku Použijte --report-trx nebo podobné možnosti rozhraní příkazového řádku.
DataCollectionRunSettings (obviňovat) Pouze rozhraní příkazového řádku Použijte volby příkazového řádku --crashdump a --hangdump. Viz Výpisy pádů a zamrznutí.
DataCollectionRunSettings (pokrytí) Pouze rozhraní příkazového řádku Použijte volbu --coverage CLI. Viz Pokrytí kódu.
TestRunParameters --test-parameter CLI Použijte --test-parameter key=value na příkazovém řádku.

Proměnné prostředí

Proměnné prostředí lze použít k poskytnutí některých informací o konfiguraci běhového prostředí.

Poznámka

Proměnné prostředí mají přednost před nastavením konfigurace v souboru testconfig.json.

TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION proměnná prostředí

Je-li nastavena hodnota 1, proces testovacího hostitele se při neošetřené výjimce okamžitě ukončí. Při nastavení 0umožňuje platforma řádné vypnutí. Toto nastavení má přednost před platformOptions:exitProcessOnUnhandledException konfigurací.

TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT proměnná prostředí

Přepíše výchozí časový limit (300 sekund) používaný pro připojení pojmenovaného kanálu mezi kontrolerem testovacího hostitele a testovacím hostitelem. Hodnota musí být řetězec kompatibilní s TimeSpan.

TESTINGPLATFORM_UI_LANGUAGE proměnná prostředí

Od MTP 1.5 tato proměnná prostředí nastavuje jazyk platformy pro zobrazování zpráv a logů pomocí hodnoty jazykového nastavení, jako je en-us. Tento jazyk má přednost před jazyky sady Visual Studio a .NET SDK. Podporované hodnoty jsou stejné jako pro Visual Studio. Další informace najdete v části o změně jazyka instalačního programu v dokumentaci k instalaci sady Visual Studio.

TESTINGPLATFORM_DIAGNOSTIC proměnná prostředí

Pokud je nastavená hodnota 1, povolí protokolování diagnostiky.

TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY proměnná prostředí

Definuje úroveň podrobností, když je povolená diagnostika. Dostupné hodnoty jsou Trace, Debug, Information, Warning, Errornebo Critical.

TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY proměnná prostředí

Výstupní adresář diagnostického protokolování. Pokud není zadaný, soubor se vygeneruje ve výchozím adresáři TestResults .

TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX proměnná prostředí

Předpona názvu souboru protokolu. Výchozí hodnota je "log_".

TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE proměnná prostředí

Vynutí integrovaný nástroj pro záznam souborů, aby synchronně zapisoval protokoly. Užitečné ve scénářích, kdy nechcete ztratit žádné položky protokolu (pokud se proces chybově ukončí). Tím se zpomalí spuštění testu.

TESTINGPLATFORM_EXITCODE_IGNORE proměnná prostředí

Středníkem oddělený seznam ukončovacích kódů, které se mají ignorovat. Pokud je ukončovací kód ignorován, proces místo toho vrátí 0. Například TESTINGPLATFORM_EXITCODE_IGNORE=2;8 ignoruje selhání testů a scénáře, kdy nebyl spuštěn žádný test.

Poznámka

Proměnné prostředí související s diagnostikou mají přednost před odpovídajícími --diagnostic-* argumenty příkazového řádku.

Viz také