Testovací zprávy

Tyto funkce vyžadují instalaci dalších balíčků NuGet, jak je popsáno v každé části.

Návod

Pokud používáte Microsoft.Testing.Platform.MSBuild (zahrnuté tranzitivně pomocí msTest, NUnit a xUnit runnerů), tato rozšíření se automaticky zaregistrují při instalaci jejich balíčků NuGet – nejsou potřeba žádné změny kódu. Ruční registrace zadaná v tomto článku se vyžaduje pouze v případě, že jste zakázali automaticky vygenerovaný vstupní bod nastavením <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Názvy souborů reportů

Každé rozšíření sestavy zapisuje svůj soubor do adresáře výsledků testů, který lze nastavit pomocí volby --results-directory. Pokud chcete název přepsat, použijte odpovídající --report-*-filename možnost. Každý oddíl sestavy obsahuje výchozí název této sestavy.

Název souboru může obsahovat relativní cestu, která zůstane v adresáři výsledků testu, a může použít následující náhradní položky (zástupné symboly):

Zástupný text Description
{asm} Název sestavení položky nebo unknown pokud není k dispozici.
{tfm} Moniker cílové architektury byl zjištěn za běhu, například net9.0.
{arch} Procesní architektura, například x64, x86nebo arm64.
{pname} Název procesu
{pid} ID procesu.
{time} Časové razítko s vysokou přesností

Například --report-trx-filename "{asm}_{tfm}_{arch}.trx" reprodukuje výchozí název TRX.

Poznámka:

V názvech zástupných symbolů se rozlišují malá a velká písmena. Podpora zástupných symbolů pro názvy souborů sestav je v MTP k dispozici od verze 2.3.0.

Visual Studio testovací zprávy (TRX)

Soubor výsledků testu Visual Studio (nebo TRX) je výchozím formátem pro publikování výsledků testu. Toto rozšíření vyžaduje balíček NuGet Microsoft.Testing.Extensions.TrxReport .

Ruční registrace

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddTrxReportProvider();

Poznámka:

Při ruční registraci zaregistrujte poskytovatele sestav TRX naposledy. Aktuální implementace závisí na objednávce registrace, takže její registrace po všech ostatních rozšířeních zajistí, že zachytí všechna testovací data.

Poznámka:

V MTP je od verze 1.9.0 k dispozici sestava TRX, která obsahuje pole Description test.

Poznámka:

V MTP jsou od verze 2.3.0 výsledky TRX v průběhu běhu průběžně zapisovány na disk. Pokud dojde k chybovému ukončení testovacího hostitele, soubor TRX uchovává výsledky shromážděné před chybou.

Možnosti

Možnost Description
--report-trx Vygeneruje sestavu TRX.
--report-trx-filename Název vygenerované zprávy TRX. Počínaje MTP 2.3.0 je výchozí deterministický {asm}_{tfm}_{arch}.trx tvar; před MTP 2.3.0 byl výchozí <UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trx. Chcete-li upravit název, viz Názvy souborů sestav.

Sestava se uloží do výchozí složky TestResults, kterou je možné zadat pomocí argumentu příkazového řádku --results-directory.

HTML sestavy

Sestava HTML vytvoří interaktivní soubor HTML s vlastním obsahem pro testovací relaci. Toto rozšíření vyžaduje balíček NuGet Microsoft.Testing.Extensions.HtmlReport.

Poznámka:

K dispozici v MTP od verze 2.3.0. Toto rozšíření je experimentální a jeho možnosti a výstupní formát se můžou v budoucí verzi změnit.

Ruční registrace

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddHtmlReportProvider();

Možnosti

Možnost Description
--report-html Vygeneruje zprávu ve formátu HTML.
--report-html-filename Název vygenerované sestavy ve formátu HTML. Hodnota musí končit .html. Výchozí hodnota je {asm}_{tfm}_{arch}.html. Chcete-li upravit název, viz Názvy souborů sestav. Vyžaduje --report-html.

Sestavy JUnit

Report JUnit vytvoří soubor XML ve formátu kompatibilním s JUnit pro testovací relaci. Toto rozšíření vyžaduje balíček NuGet Microsoft.Testing.Extensions.JUnitReport.

Poznámka:

K dispozici v MTP od verze 2.3.0. Toto rozšíření je experimentální a jeho možnosti a výstupní formát se můžou v budoucí verzi změnit.

Počínaje msTest.Sdk 4.3 povolte toto rozšíření pomocí <EnableMicrosoftTestingExtensionsJUnitReport>true</EnableMicrosoftTestingExtensionsJUnitReport>. Rozšíření není součástí Default profilů ani AllMicrosoft profilů MSTest.Sdk.

Ruční registrace

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddJUnitReportProvider();

Možnosti

Možnost Description
--report-junit Vygeneruje XML report JUnit.
--report-junit-filename Název vygenerovaného reportu JUnit XML. Hodnota musí končit .xml. Výchozí hodnota je {asm}_{tfm}_{arch}.xml. Chcete-li upravit název, viz Názvy souborů sestav. Vyžaduje --report-junit.

Sestavy CTRF

Sestava CTRF vytvoří soubor JSON, který používá Common Test Report Format pro testovací relaci. Toto rozšíření vyžaduje balíček NuGet Microsoft.Testing.Extensions.CtrfReport.

Poznámka:

K dispozici v MTP od verze 2.3.0. Toto rozšíření je experimentální a jeho možnosti a výstupní formát se můžou v budoucí verzi změnit.

Ruční registrace

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddCtrfReportProvider();

Možnosti

Možnost Description
--report-ctrf Vygeneruje zprávu ve formátu CTRF JSON.
--report-ctrf-filename Název vygenerované sestavy JSON CTRF. Hodnota musí končit .json. Výchozí hodnota je <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json. Chcete-li upravit název, viz Názvy souborů sestav. Vyžaduje --report-ctrf.

Počínaje verzí MSTest 4.4 zahrnují výsledky CTRF pro opakované testy pole retries a retryAttempts pole. Pokud test projde po předchozím neúspěšném pokusu, jeho výsledek také zahrnuje flaky: true. Souhrn terminálu identifikuje přehledné a opakované testy. Sestavy TRX a JUnit zachovají jeden konečný výsledek na test místo každého pokusu.

sestavy Azure DevOps

Plugin pro sestavy Azure DevOps zlepšuje spouštění testů pro vývojáře, kteří hostují svůj kód na GitHubu, ale vytvářejí na agentech sestavení Azure DevOps. Přidává další informace k selháním, aby se chyba zobrazovala přímo v GitHub pull requestu.

Annotace chyb v zobrazení souborů pro GitHub PR

Toto rozšíření vyžaduje balíček NuGet Microsoft.Testing.Extensions.AzureDevOpsReport .

Ruční registrace

var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddAzureDevOpsProvider();

Možnosti

Možnost Verze protokolu MTP Description
--report-azdo 1.9.0 Povolí generátor sestav Azure DevOps. Chyby a upozornění se zapisují do výstupu ve formátu, který Azure DevOps rozumí.
--report-azdo-severity 1.9.0 Závažnost, která se má použít pro ohlášené události Platné hodnoty jsou error (výchozí) a warning.
--report-azdo-flaky-history 2.3.0 Dotazuje se na historii výsledků testů v Azure DevOps za posledních N dní (1–90) a doplňuje nahlášená selhání o kontext nestability. Vyžaduje --report-azdo.
--report-azdo-demote-known-flaky 2.3.0 Přeřadí selhání, která jsou v okně historie Azure DevOps dostatečně nestabilní (výchozí prahová hodnota je 25 %), z chyb na varování. Vyžaduje --report-azdo a --report-azdo-flaky-history.
--report-azdo-quarantine-file 2.3.0 Cesta k textovému souboru se seznamem plně kvalifikovaných názvů testů v karanténě nebo vzorů glob. Neshody při porovnání jsou hlášeny jako varování. Vyžaduje --report-azdo.
--report-azdo-summary 2.3.0 Zapíše souhrn úlohy Markdownu na konci testovacího spuštění a nahraje ho prostřednictvím ##vso[task.uploadsummary]. Volitelný argument cesty k souboru přepíše výchozí umístění ({testResultsDir}/azdo-summary-{tfm}.md). Vyžaduje --report-azdo.
--report-azdo-stackframe-filter 2.3.0 Přidá vzory regulárních výrazů, které se porovnávají s plně kvalifikovanou předponou typu každého rámce zásobníku volání a které se přeskočí, když rozšíření vyhledává místo volání uživatele, které se má anotovat. Možnost je opakovatelná, až 16 vzorů a každý vzor je zkompilován s časovým limitem shody 500 ms. Tyto vzory doplňují integrované předpony implementací asercí MSTest v rozšíření. Vyžaduje --report-azdo.
--report-azdo-upload-artifacts 2.3.0 Nahraje soubory s výsledky testů a/nebo přidá tagy sestavení do Azure DevOps. Platné hodnoty jsou (výchozí), offtags-only, filesa all.
--report-azdo-upload-artifact-include 2.3.0 Zahrne soubory při nahrávání artefaktů do Azure DevOps pomocí globálních vzorů relativně k adresáři s výsledky testů. Výchozí hodnota je **/*. Vyžaduje --report-azdo-upload-artifacts , aby byla jiná hodnota než off.
--report-azdo-upload-artifact-exclude 2.3.0 Vyloučí soubory z nahrávání artefaktů do Azure DevOps pomocí vzorů glob relativně k adresáři s výsledky testů. Vyžaduje --report-azdo-upload-artifacts , aby byla jiná hodnota než off.
--report-azdo-upload-artifact-name 2.3.0 Přepíše název kontejneru artefaktů Azure DevOps. Výchozí hodnota je TestResults_{assemblyName}_{tfm}. Vyžaduje --report-azdo-upload-artifacts , aby byla jiná hodnota než off.
--publish-azdo-test-results 2.3.0 Publikuje výsledky testů živě na kartě Azure DevOps Tests.
--publish-azdo-run-name 2.3.0 Nastaví vlastní název běhu testů Azure DevOps pro publikování výsledků testů v reálném čase. Vyžaduje --publish-azdo-test-results.

Poznámka:

Sloupec verze MTP uvádí verzi MTP, ve které byla každá možnost poprvé dostupná ve stabilním buildu. Samotné rozšíření Azure DevOps se v MTP 1.9.0 stalo stabilním s --report-azdo a --report-azdo-severity; zbývající možnosti byly přidány v MTP 2.3.0.

Rozšíření automaticky zjistí, že běží v prostředí kontinuální integrace (CI) kontrolou dané proměnné prostředí TF_BUILD.

Přehledy GitHub Actions

Výstup GitHub Actions vydává nativní příkazy workflow GitHub Actions, takže běhy testů poskytují v runneru plnohodnotné prostředí: skupiny protokolů pro jednotlivá sestavení, anotace neúspěšných a přeskočených testů (zobrazené na kartě Annotations workflow a, když se podaří určit umístění ve zdrojovém kódu, i v diffu Files changed pull requestu), souhrn úlohy ve formátu Markdown připojený k souboru, na který odkazuje GITHUB_STEP_SUMMARY, a upozornění na pomalé testy.

Rozšíření se aktivuje pouze když spuštění probíhá v GitHub Actions (proměnná prostředí GITHUB_ACTIONS má hodnotu true) a je nastaven přepínač --report-gh; jinak nedělá nic. Když je tato funkce aktivní, je ve výchozím nastavení povolená a dá se vypnout jednotlivě pomocí možnosti --report-gh-* .

Poznámka:

K dispozici v MTP od verze 2.3.0. Toto rozšíření je experimentální a jeho možnosti a výstupní formát se můžou v budoucí verzi změnit.

Ruční registrace

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddGitHubActionsProvider();

Možnosti

Možnost Verze protokolu MTP Description
--report-gh 2.3.0 Povolí generátor sestav GitHub Actions, aby běhy testů generovaly příkazy workflow. Vyžaduje spuštění na GitHub Actions.
--report-gh-groups 2.3.0 Povolí nebo zakáže skupiny protokolování pro každé sestavení. Platné hodnoty jsou on (výchozí) a off. Vyžaduje --report-gh.
--report-gh-annotations 2.3.0 Povolí nebo zakáže poznámky pro neúspěšné a přeskočené testy. Platné hodnoty jsou on (výchozí) a off. Vyžaduje --report-gh.
--report-gh-step-summary 2.3.0 Povolí nebo zakáže zápis souhrnu úlohy Markdownu do souboru, na který GITHUB_STEP_SUMMARYodkazuje . Platné hodnoty jsou on (výchozí) a off. Vyžaduje --report-gh.
--report-gh-slow-test-notices 2.3.0 Povolí nebo zakáže oznámení o pomalých testech. Platné hodnoty jsou on (výchozí) a off. Vyžaduje --report-gh.
--report-gh-slow-test-threshold 2.3.0 Doba, po kterou může test běžet, než je vydáno upozornění na pomalý test. Přijímá holý počet sekund nebo hodnotu s příponou jednotky, například 90s, 2mnebo 1.5h. Výchozí hodnota je 60s. Vyžaduje --report-gh.