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 MTP.
Ukončovací kódy
MTP používá známé ukončovací kódy ke komunikaci o selhání testu nebo chybách aplikace. 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 možnostem rozhraní příkazového řádku MTP. |
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
MTP 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 MTP. 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.
Nerozpoznaná možnost příkazového řádku v řešeních se smíšenými testovacími architekturami nebo rozšířeními
Pokud vaše řešení obsahuje projekty, které používají různé testovací architektury (například MSTest a xUnit.net) nebo různé sady rozšíření (například pouze některé projekty odkazují na Microsoft.Testing.Extensions.HangDump), spuštění dotnet test s možností příkazového řádku specifického pro architekturu nebo rozšíření může selhat s ukončovacím kódem 5. Možnost je platná pro jeden projekt, ale nerozpoznaná jiným projektem.
Pokud chcete tento problém vyřešit, použijte TestingPlatformCommandLineArguments vlastnost MSBuild s podmínkami ke směrování argumentů do správných projektů. Podrobné pokyny najdete v tématu Řešení se smíšenými testovacími architekturami nebo rozšířeními.