Megosztás a következőn keresztül:


A Microsoft.Testing.Platform hibaelhárítása

Ez a cikk hibaelhárítási útmutatót tartalmaz a következőhöz Microsoft.Testing.Platform: .

Kilépési kódok

Microsoft.Testing.Platform ismert kilépési kódokat használ a tesztelési hibák vagy alkalmazáshibák közléséhez. A kilépési kódok 0-nél kezdődnek, és nem negatívak.

Kilépési kód Részletek
0 A 0 kilépési kód a sikerességet jelzi. Az összes futtatásra kiválasztott teszt befejeződött, és nem történt hiba.
1 A 1 kilépési kód ismeretlen hibákat jelez, és egyfajta általános gyűjtőként működik. További hibainformációkat és részleteket a kimenetben talál.
2 A rendszer egy kilépési 2 kóddal jelzi, hogy legalább egy teszthiba történt.
3 A kilépési kód 3 azt jelzi, hogy a tesztmunkamenet megszakadt. A munkamenetek például a CtrlC+ megszakíthatók.
4 A kilépési kód 4 azt jelzi, hogy a használt bővítmények beállítása érvénytelen, és a tesztmunkamenet nem futtatható.
5 A kilépési kód 5 azt jelzi, hogy a tesztalkalmazásnak átadott parancssori argumentumok érvénytelenek voltak.
6 (már nincs használatban) A kilépési kódot 6 a platform már nem hozza létre; korábban azt jelezte, hogy a tesztmunkamenet nem implementált funkciót használ.
7 A kilépési kód 7 azt jelzi, hogy a tesztelési munkamenet nem sikerült, és valószínűleg összeomlott. Lehetséges, hogy ezt egy tesztvezérlő bővítményén keresztül futtatott tesztmunkamenet okozta.
8 A kilépési kód 8 azt jelzi, hogy a teszt munkamenete nulla tesztet futtatott.
9 A kilépési kód 9 azt jelzi, hogy a végrehajtott tesztek minimális végrehajtási szabályzata megsértődött.
10 A kilépési kód 10 azt jelzi, hogy a tesztadapter, a Testing.Platform Test Framework, az MSTest, az NUnit vagy az xUnit nem futtatott teszteket olyan infrastruktúra-okból, amely nem kapcsolódik a teszt sajátjához. Ilyen például, ha nem sikerül létrehozni a tesztekhez szükséges szerelvényt.
11 A kilépési kód 11 azt jelzi, hogy a tesztfolyamat kilép, ha a függő folyamat kilép.
12 A kilépési kód 12 azt jelzi, hogy a tesztmunkamenet nem futott, mert az ügyfél nem támogatja a támogatott protokollverziókat.
13 A kilépési kód 13 azt jelzi, hogy a teszt munkamenete leállt, mert elérte a megadott számú sikertelen tesztet a parancssori beállítással --maximum-failed-tests . További információ : A Microsoft.Testing.Platform parancssori felület beállításainak ismertetése

A részletes naplózás engedélyezéséhez és a problémák elhárításához tekintse meg a diagnosztikai naplózást.

Adott kilépési kódok figyelmen kívül hagyása

Microsoft.Testing.Platform alapértelmezés szerint szigorú, de konfigurálhatóságot tesz lehetővé. Így a felhasználók eldönthetik, hogy mely kilépési kódokat kell figyelmen kívül hagyni (a kilépési kód az eredeti kilépési 0 kód helyett lesz visszaadva).

Adott kilépési kódok figyelmen kívül hagyásához használja a --ignore-exit-code parancssori beállítást vagy a környezeti változót TESTINGPLATFORM_EXITCODE_IGNORE . Az elfogadott érvényes formátum a figyelmen kívül hagyandó kilépési kódok pontosvesszővel elválasztott listája (például --ignore-exit-code 2;3;8). Gyakori forgatókönyv az, hogy a tesztelési hibák nem eredményezhetnek nem nulla kilépési kódot (ami a kilépési kód 2 figyelmen kívül hagyásának felel meg).

Diagnosztikai naplózás

A platform beépített diagnosztikai naplózást biztosít a tesztvégrehajtás hibaelhárításához. A diagnosztikai naplózást parancssori beállításokkal vagy környezeti változókkal engedélyezheti.

Parancssori beállítások

A következő platformbeállítások hasznos információkat nyújtanak a tesztalkalmazások hibaelhárításához:

  • --info
  • --diagnostic
  • --diagnostic-synchronous-write
  • --diagnostic-verbosity
  • --diagnostic-file-prefix
  • --diagnostic-output-directory

Környezeti változók

A diagnosztikai naplókat a környezeti változók használatával is engedélyezheti:

Környezeti változó neve Description
TESTINGPLATFORM_DIAGNOSTIC Ha 1értékre van állítva, engedélyezi a diagnosztikai naplózást.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY Meghatározza a részletességi szintet. Az elérhető értékek a következők: Trace, Debug, Information, Warning, Errorvagy Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY 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_OUTPUT_FILEPREFIX A naplófájl nevének előtagja. Alapértelmezett érték: "log_".
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE 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.

Megjegyzés:

A környezeti változók elsőbbséget élveznek a parancssori argumentumokkal szemben.

Konfigurációs hibák elhárítása

Microsoft.Testing.Platform.MSBuild

Az alábbiakban a Microsoft.Testing.Platform.MSBuild szolgáltatással kapcsolatos gyakori konfigurációs hibák szerepelnek.

CS8892 hiba: A "TestingPlatformEntryPoint.Main(string[])" metódus nem használható belépési pontként, mert a program.Main(sztring[])" szinkron belépési pont található

Egy tesztprojekt belépési pontjának (Main) manuális definiálása vagy tesztprojektre való hivatkozás egy olyan alkalmazásból, amely már rendelkezik belépési ponttal, ütközést eredményez a Microsoft.Testing.Platformáltal létrehozott belépési ponttal. A probléma elkerülése érdekében hajtsa végre az alábbi lépések egyikét:

  • Távolítsa el a manuálisan megadott belépési pontot, amely általában a Main metódus a Program.csfájlban, és hagyja, hogy a tesztelési platform hozzon létre Önnek egyet.

  • Tiltsa le a belépési pont létrehozását az <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> MSBuild tulajdonság beállításával.

  • A tesztprojektre hivatkozó projekt Microsoft.Testing.Platform.MSBuild MSBuild tulajdonságának beállításával teljesen tiltsa le a <IsTestingPlatformApplication>false</IsTestingPlatformApplication> tranzitív függőséget. Erre akkor van szükség, ha nem tesztprojektből származó tesztprojektre hivatkozik, például egy tesztalkalmazásra hivatkozó konzolalkalmazásra.

Microsoft.Testing.Extensions.Fakes

Hamis hiba: Nem sikerült feloldani a profiler elérési útját COR_PROFILER_PATH és COR_PROFILER környezeti változókból

Ez a hiba akkor fordulhat elő, ha nem minden Fakes összetevő található a bin mappában.

  • Győződjön meg arról, hogy a projekt használja az MSTest.SDK-t , vagy hivatkozik a Microsoft.Testing.Extensions.Fakes-re .
  • .NET-keretrendszerprojektek esetében kerülje a <PlatformTarget>AnyCPU</PlatformTarget> beállítását, mivel ez azt eredményezi, hogy a NuGet nem másolja az összes fájlt a tárolómappába.