Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje pokyny k řešení potíží pro Microsoft.Testing.Platform.
Ukončovací kódy
Microsoft.Testing.Platform používá známé ukončovací kódy ke komunikaci selhání testu nebo chyb aplikací. Ukončovací kódy začínají 0 a nejsou záporné.
| Ukončovací kód | Podrobnosti |
|---|---|
0 |
Ukončovací 0 kód označuje úspěch. Všechny testy, které byly vybrány ke spuštění, proběhly až do konce, aniž by došlo k chybám. |
1 |
Ukončovací 1 kód označuje neznámé chyby a funguje jako catch all. Další informace o chybě a podrobnosti najdete ve výstupu. |
2 |
Ukončovací 2 kód se používá k označení, že došlo aspoň k jednomu selhání testu. |
3 |
Ukončovací kód 3 označuje, že testovací relace byla přerušena. Relaci je možné přerušit pomocí ctrl+C jako příklad. |
4 |
Ukončovací kód 4 označuje, že nastavení použitých rozšíření je neplatné a relace testů se nedá spustit. |
5 |
Ukončovací kód 5 označuje, že argumenty příkazového řádku předané testovací aplikaci byly neplatné. |
6 (už se nepoužívá) |
Ukončovací kód 6 již není vytvořen platformou; dříve uvedl, že testovací relace používala neimplementovanou funkci. |
7 |
Ukončovací kód 7 označuje, že testovací relace se nepodařilo úspěšně dokončit a pravděpodobně došlo k chybovému ukončení. Je možné, že příčinou byla testovací relace, která byla spuštěna prostřednictvím bodu rozšíření testovacího kontroleru. |
8 |
Ukončovací kód 8 označuje, že testovací relace spustila nulové testy. |
9 |
Ukončovací kód 9 označuje, že došlo k porušení minimálních zásad spouštění pro spuštěné testy. |
10 |
Ukončovací kód 10 označuje, že testovací adaptér, Test.Platform Test Framework, MSTest, NUnit nebo xUnit se nepodařilo spustit testy z důvodu infrastruktury nesouvisející s vlastním testem. Příkladem je neschopnost vytvořit přípravek potřebný pro testy. |
11 |
Ukončovací kód 11 označuje, že testovací proces se ukončí, pokud se ukončí závislý proces. |
12 |
Ukončovací kód 12 označuje, že testovací relace se nepovedlo spustit, protože klient nepodporuje žádnou z podporovaných verzí protokolu. |
13 |
Ukončovací kód 13 označuje, že se testovací relace zastavila kvůli dosažení zadaného počtu maximálního počtu neúspěšných testů pomocí --maximum-failed-tests možnosti příkazového řádku. Další informace najdete v části Možnosti v referenčních informacích k rozhraní příkazového řádku Microsoft.Testing.Platform. |
Pokud chcete povolit podrobné protokolování a řešit potíže, přečtěte si téma Diagnostické protokolování.
Ignorovat konkrétní ukončovací kódy
Microsoft.Testing.Platform je navržen tak, aby byl ve výchozím nastavení striktní, ale umožňuje konfigurovatelnost. Proto je možné, aby se uživatelé rozhodli, které ukončovací kódy by se měly ignorovat (místo nich se vrátí ukončovací kód 0).
Pokud chcete ignorovat konkrétní ukončovací kódy, použijte možnost příkazového --ignore-exit-code řádku nebo proměnnou TESTINGPLATFORM_EXITCODE_IGNORE prostředí. Platný formát, který je přijat, je seznam ukončovacích kódů, oddělený středníkem, které se mají ignorovat (například --ignore-exit-code 2;3;8). Běžným scénářem je vzít v úvahu, že selhání testů by neměla mít za následek nenulový ukončovací kód (který odpovídá ignorování ukončovacího kódu 2).
Protokolování diagnostiky
Platforma poskytuje integrované diagnostické protokolování, které vám pomůže řešit potíže s prováděním testů. Protokolování diagnostiky můžete povolit prostřednictvím možností příkazového řádku nebo proměnných prostředí.
Možnosti příkazového řádku
Následující možnosti platformy poskytují užitečné informace pro řešení potíží s testovacími aplikacemi:
--info--diagnostic--diagnostic-synchronous-write--diagnostic-verbosity--diagnostic-file-prefix--diagnostic-output-directory
Proměnné prostředí
Diagnostické protokoly můžete povolit také pomocí proměnných prostředí:
| Název proměnné prostředí | Description |
|---|---|
TESTINGPLATFORM_DIAGNOSTIC |
Pokud je nastavená hodnota 1, povolí protokolování diagnostiky. |
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY |
Definuje úroveň podrobností. Dostupné hodnoty jsou Trace, Debug, Information, Warning, Errornebo Critical. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY |
Výstupní adresář protokolování diagnostiky, pokud není zadaný, soubor se vygeneruje ve výchozím adresáři TestResults. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX |
Předpona názvu souboru protokolu. Výchozí hodnota je "log_". |
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE |
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. |
Poznámka:
Proměnné prostředí mají přednost před argumenty příkazového řádku.
Řešení chyb konfigurace
Microsoft.Testing.Platform.MSBuild
Níže jsou uvedené běžné chyby konfigurace související s Microsoft.Testing.Platform.MSBuild.
Chyba CS8892: Metoda TestingPlatformEntryPoint.Main(string[]) se nepoužije jako vstupní bod, protože byl nalezen synchronní vstupní bod Program.Main(string[]).
Ruční definování vstupního bodu (Main) v testovacím projektu nebo odkazování na testovací projekt z aplikace, která již obsahuje vstupní bod, vede ke konfliktu s vstupním bodem vygenerovaným Microsoft.Testing.Platform. Pokud se chcete tomuto problému vyhnout, proveďte jeden z těchto kroků:
Odeberte ručně definovaný vstupní bod, obvykle metodu
Mainv Program.cs, a nechte testovací platformu, aby ji vygenerovala za vás.Zakažte generování vstupního bodu nastavením vlastnosti
<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>MSBuild.Úplně zakažte tranzitivní závislost na
Microsoft.Testing.Platform.MSBuildnastavením vlastnosti<IsTestingPlatformApplication>false</IsTestingPlatformApplication>MSBuild v projektu, který odkazuje na testovací projekt. To je potřeba, když odkazujete na testovací projekt z netestového projektu, například konzolové aplikace, která odkazuje na testovací aplikaci.
Microsoft.Testing.Extensions.Fakes
Chyba Fakes: Nepodařilo se určit cestu profileru z proměnných prostředí COR_PROFILER_PATH a COR_PROFILER
K této chybě může dojít, pokud nejsou ve složce bin přítomna všechna sestavení Fakes.
- Ujistěte se, že projekt používá MSTest.SDK nebo odkazuje Microsoft.Testing.Extensions.Fakes.
- U projektů .NET Framework nepoužívejte nastavení
<PlatformTarget>AnyCPU</PlatformTarget>, protože výsledkem je, že NuGet nekopíruje všechny soubory do složky přihrádky.