Microsoft Testing.Platform (MTP) konfigurációs beállításai

Az MTP támogatja a konfigurációs fájlok és környezeti változók használatát a tesztplatform viselkedésének konfigurálásához. Ez a cikk a tesztplatform konfigurálásához használható konfigurációs beállításokat ismerteti.

testconfig.json

A tesztplatform egy [appname] nevű konfigurációs fájlt használ,.testconfig.json a tesztplatform viselkedésének konfigurálásához. A testconfig.json fájl egy JSON-fájl, amely a tesztplatform konfigurációs beállításait tartalmazza.

A testconfig.json fájl struktúrája a következő:

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

A platform automatikusan észleli és betölti a tesztprojekt kimeneti könyvtárában (a végrehajtható fájl közelében) található [appname].testconfig.json fájlt.

A Microsoft.Testing.Platform.MSBuild használatakor egyszerűen létrehozhat egy testconfig.json fájlt, amely automatikusan át lesz nevezve [alkalmazásnév].testconfig.json, és átkerül a tesztprojekt kimeneti könyvtárába.

Az MTP 1.5-től kezdve a parancssori argumentummal --config-file megadhatja a testconfig.jsonelérési útját. Ez a fájl elsőbbséget élvez az [appname].testconfig.json fájllal szemben.

Jegyzet

Az [appname].testconfig.json fájl felülíródik a későbbi buildeken.

Központosított testconfig.json használata

Ha azt szeretné, hogy több tesztprojekt is ugyanazt az testconfig.json fájlt használja, elhelyezheti azt egy központi helyen, és megadhatja a(z) --config-file használatával. Ha az MSBuild elérhető (például dotnet testdotnet run), az TestingPlatformCommandLineArguments MSBuild tulajdonság használatával automatikusan átadhatja az argumentumot. Ha ezt az adattár gyökerében található Directory.Build.props fájlhoz adja hozzá, az biztosítja, hogy minden tesztprojekt azonos konfigurációt használjon:

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

Konfigurációs elsőbbség

Ha ugyanazt a beállítást több módon is meg lehet adni, az MTP a következő sorrendben oldja fel (az első egyezés nyer):

  1. Parancssori argumentumok (például --results-directory)
  2. Környezeti változók
  3. testconfig.json beállítások
  4. Beépített alapértelmezett beállítások

Platformbeállítások

A platformOptionstestconfig.json fájl szakasza a tesztplatform alapvető viselkedését konfigurálja. Az alábbi táblázat az összes támogatott platformbeállítást felsorolja:

Bejegyzés Alapértelmezett Leírás
resultDirectory TestResults Az a könyvtár, ahol a teszteredmények találhatók. Lehet relatív elérési út (az aktuális munkakönyvtárhoz viszonyítva értelmezve) vagy abszolút elérési út. A --results-directory parancssori beállítás elsőbbséget élvez.
exitProcessOnUnhandledException false Ha a(z) true értékre van állítva, a tesztgazda folyamata kezeletlen kivétel esetén azonnal kilép a szabályos leállás engedélyezése helyett. A TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION környezeti változó (értékek 1 vagy 0) elsőbbséget élveznek.

Jegyzet

További belső platformopciók érhetők el haladó forgatókönyvekhez (például a tesztgazda-vezérlők named pipe időkorlátjaihoz). Ezek a lehetőségek az infrastruktúra használatára szolgálnak, és ezekre itt nem vonatkoznak.

Példa:

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

Környezeti változók a testconfig.json fájlban

Jegyzet

Az MTP-ben a 2.3.0-s verziótól kezdve érhető el.

A environmentVariables szakasz a tesztelési folyamat környezeti változóit állítja be a kezdés előtt. Használjon sztringértékeket minden változóhoz.

{
  "environmentVariables": {
    "DOTNET_ENVIRONMENT": "Development",
    "FEATURE_FLAG": "true"
  }
}

CLI-kapcsolók a testconfig.json fájlban

Az MTP 2.3.0 előtti verziókban az olyan bővítményfunkciók, mint a összeomlási állapotkép, a lefagyási állapotkép, az újrapróbálkozás, a TRX-jelentések és a kódlefedettség, nem konfigurálhatók a testconfig.json fájlon keresztül. Ezek a funkciók kizárólag parancssori argumentumokkal vannak konfigurálva.

Az MTP 2.3.0-tól kezdve a parancssori felület beállításai testconfig.json keresztül IConfigurationolvashatók. Ez a támogatás bővítménybeállításokat is tartalmaz, így JSON-bejegyzéseket használhat olyan beállításokhoz, amelyeket nem szeretne átadni a parancssornak minden futtatáskor. A parancssori argumentumok továbbra is elsőbbséget élveznek.

A parancssori beállítások teljes referenciáját az MTP parancssori felületének beállításaira vonatkozó hivatkozásban talál.

Keretrendszerspecifikus beállítások tesztelése

A tesztelési keretrendszerek saját konfigurációs szakaszokat határozhatnak meg a testconfig.json fájlban. Tekintse meg a tesztelési keretrendszer dokumentációját:

testconfig.json mintafájl

Az alábbi példa egy testconfig.json fájlt mutat be, amely a platformbeállításokat és az MSTest-beállításokat konfigurálja:

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

Migrálás a .runsettings fájlról a testconfig.json fájlra

Ha a .runsettings fájlból migrál, az alábbi táblázat megfelelteti a gyakori beállításokat a testconfig.json megfelelőinek vagy alternatíváinak:

.runsettings beállítás a testconfig.json megfelelője Jegyzetek
RunConfiguration/ResultsDirectory platformOptions.resultDirectory
RunConfiguration/MaxCpuCount Nincs egyenértékű A folyamatszintű párhuzamosságot a dotnet test --max-parallel-test-modules vagy az MSBuild /m kapcsoló szabályozza.
MSTest/* mstest.* Lásd: MSTest konfigurálása – testconfig.json.
xUnit/* xUnit.* Lásd : xUnit.net testconfig.json.
LoggerRunSettings/Loggers Parancssori felület beállításai Használjon --report-trx vagy hasonló parancssori felületi beállításokat. Az MTP 2.3.0-s verziójától kezdve az MTP képes a parancssori kapcsolókat a testconfig.json fájlból beolvasni.
DataCollectionRunSettings (hibáztatás) Parancssori felület beállításai Használja a --crashdump és a --hangdump CLI-beállításokat. Az MTP a 2.3.0-s verziótól kezdve képes a testconfig.json fájlból beolvasni a parancssori kapcsolókat. Lásd: Összeomlási és lefagyási memóriaképek.
DataCollectionRunSettings (lefedettség) Parancssori felület beállításai Használja a(z) --coverage parancssori kapcsolót. Az MTP 2.3.0-s verziójától kezdve az MTP be tudja olvasni a CLI-beállításokat a testconfig.json fájlból. Lásd : Kódlefedettség.
TestRunParameters --test-parameter CLI Használja --test-parameter key=value a parancssorban.

Környezeti változók

A környezeti változók felhasználhatók a futtatókörnyezet konfigurációs adatainak megadására.

Jegyzet

A környezeti változók elsőbbséget élveznek a testconfig.json fájl konfigurációs beállításaival szemben.

TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION környezeti változó

Ha be van 1állítva, a tesztgazdafolyamat azonnal kilép a kezeletlen kivételekből. Ha a(z) 0 értékre van állítva, a platform lehetővé teszi a szabályos leállítást. Ez a beállítás elsőbbséget élvez a platformOptions:exitProcessOnUnhandledException konfigurációval szemben.

TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT környezeti változó

Felülbírálja a tesztgazda vezérlője és a tesztgazda közötti elnevezett csővezetékes kapcsolatokhoz használt alapértelmezett várakozási időkorlátot (300 másodperc). Az értéknek TimeSpankompatibilis sztringnek kell lennie.

TESTINGPLATFORM_UI_LANGUAGE környezeti változó

Az MTP 1.5-től kezdődően ez a környezeti változó beállítja a platform nyelvét az üzenetek és naplók területi érték használatával való megjelenítéséhez, például en-us. Ez a nyelv elsőbbséget élvez a Visual Studio és a .NET SDK nyelvével szemben. A támogatott értékek megegyeznek a Visual Studióval. További információkért tekintse meg a telepítő nyelvének módosításáról szóló szakaszt a Visual Studio telepítési dokumentációjában.

TESTINGPLATFORM_DIAGNOSTIC környezeti változó

Ha 1értékre van állítva, engedélyezi a diagnosztikai naplózást.

TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY környezeti változó

Meghatározza a részletességi szintet, ha a diagnosztika engedélyezve van. Az elérhető értékek a következők: Trace, Debug, Information, Warning, Errorvagy Critical.

TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY környezeti változó

A diagnosztikai naplózás kimeneti könyvtára. Ha nincs megadva, a fájl az alapértelmezett TestResults könyvtárban jön létre.

TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX környezeti változó

A naplófájl nevének előtagja. Alapértelmezett érték: "log_". Megfelel a --diagnostic-file-prefix parancssori beállításnak.

Jegyzet

Ez a környezeti változó neve az MTP-ben érhető el a 2.3.0-s verziótól kezdve. Az örökölt TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX környezeti változó továbbra is megfelel a visszamenőleges kompatibilitásnak, de elavult, és egy későbbi főverzióban eltávolítható. Ha mindkét változó be van állítva, TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX elsőbbséget élvez.

TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE környezeti változó

A beépített fájlnaplózót kényszeríti a naplók szinkronizálására. Olyan helyzetekben hasznos, amikor nem szeretné elveszíteni a naplóbejegyzéseket (ha a folyamat összeomlik). Ez lelassítja a teszt végrehajtását. Megfelel a --diagnostic-synchronous-write parancssori beállításnak.

Jegyzet

Ez a környezeti változó neve az MTP-ben érhető el a 2.3.0-s verziótól kezdve. Az örökölt TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE környezeti változó továbbra is megfelel a visszamenőleges kompatibilitásnak, de elavult, és egy későbbi főverzióban eltávolítható. Ha mindkét változó be van állítva, TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE elsőbbséget élvez.

TESTINGPLATFORM_EXITCODE_IGNORE környezeti változó

A figyelmen kívül hagyandó kilépési kódok pontosvesszővel tagolt listája. Ha egy kilépési kód figyelmen kívül van hagyva, a folyamat ehelyett 0 értékkel tér vissza. Például a TESTINGPLATFORM_EXITCODE_IGNORE=2;8 figyelmen kívül hagyja a sikertelen teszteket és azokat az eseteket, amikor egyetlen teszt sem futott le.

TESTINGPLATFORM_NOBANNER környezeti változó

Ha be van 1 állítva, vagy trueletiltja az indítási szalagcímet, a szerzői jogi üzenetet és a telemetriai szalagcímet. Egyenértékű a --no-banner parancssori lehetőséggel. A DOTNET_NOLOGO környezeti változónak ugyanaz a hatása.

NO_COLOR környezeti változó

Ha bármilyen nem üres értékre van állítva, letiltja az összes ANSI-színkimenetet. Az MTP tiszteletben tartja a konvenciót NO_COLOR .

Jegyzet

Az MTP-ben a 2.3.0-s verziótól kezdve érhető el.

DOTNET_NOLOGO környezeti változó

Ha be van 1 állítva, vagy trueletiltja az indítási szalagcímet, a szerzői jogi üzenetet és a telemetriai szalagcímet. Ez a szabványos .NET CLI környezeti változó, amelyet az MTP tiszteletben tart. Lásd még: TESTINGPLATFORM_NOBANNER.

TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER környezeti változó

Ha be van 1állítva, a tesztelési folyamat indításkor szünetel, és megvárja, amíg a hibakereső csatolva lesz a folytatás előtt. Egyenértékű a --debug parancssori lehetőséggel. Böngészőplatformokon nem támogatott.

Jegyzet

Ez a környezeti változó az MTP-ben érhető el az 1.6.0-s verziótól kezdve.

TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER környezeti változó

Amikor 1 értékre van állítva, a tesztfolyamat indításkor meghívja a Debugger.Launch() elemet, ami arra készteti a rendszert, hogy elindítson egy JIT hibakeresőt, és csatlakoztassa azt a folyamathoz. Ezzel a változóval az indításkor fellépő, még a hibakereső manuális csatlakoztatása előtt jelentkező problémákat hibakeresheti (például a kiszolgálói módú kapcsolatfelvételt). A nem Windows platformokon a viselkedés a konfigurált JIT-hibakeresőtől függ.

Jegyzet

Ez a környezeti változó az MTP-ben érhető el az 1.6.0-s verziótól kezdve.

Jegyzet

A diagnosztikai környezet változói elsőbbséget élveznek a megfelelő --diagnostic-* parancssori argumentumokkal szemben.

Lásd még