Tesztjelentések

Minden jelentésbeállításhoz szükség van a szakaszában elnevezett bővítménycsomagra. Adja hozzá közvetlenül a csomagot, vagy használjon egy teszt SDK-konfigurációt vagy profilt, amely tartalmazza azt. A jelentésbővítmények nem képezik az MTP alapvető részét, ezért egy olyan beállítást, mint a --report-trx, a tesztalkalmazás nem ismer fel, ha nem regisztrálja annak bővítményét. Futtassa a tesztalkalmazást a(z) --help használatával, vagy futtassa a(z) dotnet test --help elemet MTP módban, hogy meggyőződjön arról, hogy elérhető-e egy opció.

Jótanács

A Microsoft.Testing.Platform.MSBuild (amelyet az MSTest, az NUnit és az xUnit tesztfutók tranzitívan tartalmaznak) használatakor ezek a bővítmények automatikusan regisztrálásra kerülnek a NuGet-csomagok telepítésekor – nincs szükség a kód módosítására. A cikkben megadott manuális regisztrációra csak akkor van szükség, ha a beállítással <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>letiltotta az automatikusan létrehozott belépési pontot.

Jelentésfájlnevek

Minden jelentéskiterjesztés a fájlját a teszteredmények könyvtárába írja, amelyet a(z) --results-directory kapcsolóval adhat meg. A név felülírásához használja a hozzá tartozó --report-*-filename beállítást. Minden jelentésszakasz felsorolja a jelentés alapértelmezett nevét.

A fájlnevek tartalmazhatnak relatív elérési utat, amely a teszteredmények könyvtárában marad, és a következő helyettesítő elemeket (helyőrzőket) használhatja:

Placeholder Description
{asm} A bejegyzés-összeállítás neve, vagy unknown, ha nem áll rendelkezésre.
{tfm} A futásidőben észlelt célkeretrendszer megnevezése, például net9.0.
{arch} Folyamatarchitektúra, például x64, x86vagy arm64.
{pname} Folyamat neve.
{pid} Folyamatazonosító.
{time} Nagy pontosságú időbélyeg.

Például --report-trx-filename "{asm}_{tfm}_{arch}.trx" reprodukálja az alapértelmezett TRX-nevet.

Megjegyzés:

A helyőrzőnevek megkülönböztetik a kis- és nagybetűket, és kisbetűsek. A jelentésfájlnevek helyőrző támogatása az MTP-ben érhető el a 2.3.0-s verziótól kezdve.

Jelentéskonszolidáció

Az MTP 2.4.0-tól kezdve az MTP automatikusan feldolgozza a jelentésösszetevőket, miután egy dotnet test meghívás több tesztmodult futtat, vagy miután újrapróbálkozás után a támogatás több kísérletet is futtat. A funkció kísérleti jellegű az MTP 2.4.0-s verzióban.

A TRX, JUnit, CTRF és HTML-bővítmények jelentéstípus szerint csoportosítják a kompatibilis összetevőket, és konszolidált jelentést írnak a teszteredmény-könyvtár alkönyvtárában merged . A CTRF-összevonás egyesíti a modulok eredményeit, és az újrapróbálkozásokat az újrapróbálkozási előzményekkel együtt a végső teszteredménybe vonja össze. A HTML-összevonás egyesített összegzést hoz létre, és megőrzi az eredeti folyamatonkénti jelentéseket.

Az egyéni jelentésbővítmények esetében a kísérleti IArtifactPostProcessor API külön TestModules és RetryAttempts feldolgozási módokat tesz elérhetővé. További információ: A IArtifactPostProcessor bővítmények.

Visual Studio tesztjelentések (TRX)

A teszteredmények közzétételének alapértelmezett formátuma a Visual Studio teszteredményfájl (vagy TRX). Ehhez a bővítményhez a Microsoft.Testing.Extensions.TrxReport NuGet csomag szükséges.

Manuális regisztráció

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

Megjegyzés:

Manuális regisztráció használatakor regisztrálja utoljára a TRX jelentésszolgáltatót. Az aktuális implementáció a regisztrációs sorrendtől függ, ezért az összes többi bővítmény után történő regisztrálás biztosítja az összes tesztadat rögzítését.

Megjegyzés:

Az 1.9.0-s verziótól kezdve elérhető MTP-ben a TRX-jelentés tartalmazza a tesztmezőt Description .

Megjegyzés:

Az MTP-ben a 2.3.0-s verziótól kezdve a TRX-eredmények a futtatás előrehaladtával folyamatosan a lemezre íródnak. Ha a tesztgazda összeomlik, a TRX-fájl megőrzi az összeomlás előtt összegyűjtött eredményeket.

Beállítások

Lehetőség Description
--report-trx Létrehozza a TRX-jelentést.
--report-trx-filename A létrehozott TRX-jelentés neve. Az MTP 2.3.0-tól kezdődően az alapértelmezett érték a determinisztikus {asm}_{tfm}_{arch}.trx forma; az MTP 2.3.0 előtt az alapértelmezett érték volt <UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trx. A név testreszabásához tekintse meg a jelentésfájlneveket.

A jelentés az alapértelmezett TestResults mappába kerül, amely a --results-directory parancssori argumentumon keresztül adható meg.

HTML-jelentések

A HTML-jelentés egy interaktív, önálló HTML-fájlt hoz létre egy tesztmunkamenethez. Ehhez a bővítményhez a Microsoft.Testing.Extensions.HtmlReport NuGet-csomag szükséges.

Megjegyzés:

Az MTP-ben a 2.3.0-s verziótól kezdve érhető el. Ez a bővítmény kísérleti jellegű, és a beállításai és a kimeneti formátuma megváltozhat egy későbbi verzióban.

Manuális regisztráció

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

Beállítások

Lehetőség Description
--report-html Létrehozza a HTML-jelentést.
--report-html-filename A létrehozott HTML-jelentés neve. Az értéknek a következővel kell végződnie .html: . Az alapértelmezett érték a {asm}_{tfm}_{arch}.html. A név testreszabásához tekintse meg a jelentésfájlneveket. Szükséges --report-html.

JUnit-jelentések

A JUnit-jelentés létrehoz egy JUnit-kompatibilis XML-fájlt egy tesztmunkamenethez. Ehhez a bővítményhez a Microsoft.Testing.Extensions.JUnitReport NuGet-csomag szükséges.

Megjegyzés:

Az MTP-ben a 2.3.0-s verziótól kezdve érhető el. Ez a bővítmény kísérleti jellegű, és a beállításai és a kimeneti formátuma megváltozhat egy későbbi verzióban.

Az MSTest.Sdk 4.3-as verziójától kezdve a(z) <EnableMicrosoftTestingExtensionsJUnitReport>true</EnableMicrosoftTestingExtensionsJUnitReport> használatával lehet engedélyezni ezt a bővítményt. A bővítmény nem része az DefaultAllMicrosoft MSTest.Sdk-profilnak.

Manuális regisztráció

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

Beállítások

Lehetőség Description
--report-junit Létrehozza a JUnit XML-jelentést.
--report-junit-filename A létrehozott JUnit XML-jelentés neve. Az értéknek a következővel kell végződnie .xml: . Az alapértelmezett érték a {asm}_{tfm}_{arch}.xml. A név testreszabásához tekintse meg a jelentésfájlneveket. Szükséges --report-junit.

CTRF-jelentések

A CTRF-jelentés létrehoz egy JSON-fájlt, amely a Common Test Report Formátumot használja egy tesztmunkamenethez. Ehhez a bővítményhez a Microsoft.Testing.Extensions.CtrfReport NuGet-csomag szükséges.

Megjegyzés:

Az MTP-ben a 2.3.0-s verziótól kezdve érhető el. Ez a bővítmény kísérleti jellegű, és a beállításai és a kimeneti formátuma megváltozhat egy későbbi verzióban.

Manuális regisztráció

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

Beállítások

Lehetőség Description
--report-ctrf Létrehozza a CTRF JSON-jelentést.
--report-ctrf-filename A létrehozott CTRF JSON-jelentés neve. Az értéknek a következővel kell végződnie .json: . Az alapértelmezett érték a <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json. A név testreszabásához tekintse meg a jelentésfájlneveket. Szükséges --report-ctrf.

Az MSTest 4.4-től kezdve az újrapróbált tesztek CTRF-eredményei tartalmazzák a retries és retryAttempts mezőket. Ha egy teszt egy korábbi sikertelen kísérlet után sikeres, az eredménye a(z) flaky: true elemet is tartalmazza. A terminál összegzése azonosítja a pelyhes és újrapróbálkozott teszteket. A TRX- és JUnit-jelentések tesztenként egy végső eredményt tárolnak ahelyett, hogy minden kísérletet rögzítenének.

Azure DevOps jelentések

Az Azure DevOps jelentési beépülő modul javítja a teszt futtatását azoknak a fejlesztőknek, akik a kódjukat a GitHub-on üzemeltetik, de Azure DevOps buildügynökökön futtatják. További információkat ad hozzá a hibákhoz, amelyek közvetlenül GitHub PR-ben jelenítik meg a hibát.

Hibajelölés a GitHub PR fájlok nézetében

Ehhez a bővítményhez a Microsoft.Testing.Extensions.AzureDevOpsReport NuGet csomag szükséges.

Manuális regisztráció

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

Beállítások

Lehetőség MTP-verzió Description
--report-azdo 1.9.0 Engedélyezi a Azure DevOps jelentésgenerátort. A hibák és figyelmeztetések a kimenetbe Azure DevOps érthető formátumban vannak megírva.
--report-azdo-severity 1.9.0 A jelentett eseményekhez használt súlyossági szint. Az érvényes értékek az (alapértelmezett) és a errorwarning.
--report-azdo-groups 2.4.0 Engedélyezi vagy letiltja a szerelvényenkénti naplócsoportokat. Ha engedélyezve van, az egyes tesztszerelvények kimenete a Azure Pipelines napló összecsukható szakaszában jelenik meg. Az érvényes értékek a következők: on és off. Az MTP 2.4.0 előzetes buildjei alapértelmezés szerint a on értéket használják; a stabil MTP 2.4.0 kiadás alapértelmezés szerint a off értéket használja. Szükséges --report-azdo.
--report-azdo-annotations 2.4.0 Engedélyezi vagy letiltja a sikertelen és kihagyott tesztekhez tartozó széljegyzeteket. Az érvényes értékek az (alapértelmezett) és a onoff. Szükséges --report-azdo.
--report-azdo-flaky-history 2.3.0 Lekérdezi az Azure DevOpsban az elmúlt N nap (1–90) teszteredmény-előzményeit, és a jelentett hibákat instabilitási kontextussal látja el. Szükséges --report-azdo.
--report-azdo-demote-known-flaky 2.3.0 Az Azure DevOps előzményablakában kellően instabil hibákat (az alapértelmezett küszöbérték 25%) hibáról figyelmeztetésre minősíti vissza. A következő elemek szükségesek: --report-azdo és --report-azdo-flaky-history.
--report-azdo-quarantine-file 2.3.0 Azon tesztek teljesen minősített neveit vagy glob mintáit felsoroló szövegfájl elérési útja, amelyek karanténba vannak helyezve. Az egyeztetési hibák figyelmeztetésként jelennek meg. Szükséges --report-azdo.
--report-azdo-summary 2.3.0 A tesztfuttatás végén Markdown formátumú feladat-összefoglalót ír, és a(z) ##vso[task.uploadsummary] használatával feltölti. A választható fájlelérési útvonal argumentum felülírja az alapértelmezett helyet ({testResultsDir}/azdo-summary-{tfm}.md). Szükséges --report-azdo.
--report-azdo-stackframe-filter 2.3.0 Regexmintákat ad hozzá, amelyek az egyes veremkeretek teljesen minősített típusa előtagjára illeszkednek, és amelyeket a bővítmény figyelmen kívül hagy, amikor megkeresi a felhasználó annotálandó hívási helyét. Az opció többször is megadható, legfeljebb 16 mintáig, és minden minta 500 ms-os egyezési időkorláttal kerül lefordításra. Ezek a minták a bővítmény beépített MSTest assertion-implementációs előtagjaihoz adnak adalékot. Szükséges --report-azdo.
--report-azdo-upload-artifacts 2.3.0 Feltölti a teszteredményfájlokat, és/vagy buildcímkéket ad hozzá a Azure DevOps. Az érvényes értékek a következők off : (alapértelmezett), tags-onlyfilesés all.
--report-azdo-upload-artifact-include 2.3.0 A teszteredmények könyvtárához viszonyított glob minták alapján fájlokat foglal bele az Azure DevOps-műtermék feltöltésébe. Alapértelmezett érték: **/*. Megköveteli, hogy a(z) --report-azdo-upload-artifacts értéke ne off legyen.
--report-azdo-upload-artifact-exclude 2.3.0 Kizárja a fájlokat az Azure DevOps-buildtermék feltöltéséből, a teszteredmények könyvtárához viszonyított globminták alapján. Megköveteli, hogy a(z) --report-azdo-upload-artifacts értéke ne off legyen.
--report-azdo-upload-artifact-name 2.3.0 Felülbírálja a Azure DevOps összetevőtároló nevét. Alapértelmezett érték: TestResults_{assemblyName}_{tfm}. Megköveteli, hogy a(z) --report-azdo-upload-artifacts értéke ne off legyen.
--publish-azdo-test-results 2.3.0 A teszteredményeket élőben teszi közzé a Azure DevOps Tesztek lapon.
--publish-azdo-run-name 2.3.0 Egyéni Azure DevOps tesztfuttatás nevét állítja be az élő teszteredmények közzétételéhez. Szükséges --publish-azdo-test-results.

Warning

Ne engedélyezze a csoportokat, ha több teszt-összeállítás fut párhuzamosan. ##[group] Azure DevOps és ##[endgroup] formázási parancsok egymást követő és névtelenek. Az egyidejű szerelvénykimenetek átjárhatják egymást, helytelen csoportbe ágyazást okozhatnak, és helytelen szerelvény alá helyezhetik a sorokat. Ha az MTP 2.4.0 előzetes buildjét használja, a csoportok letiltásához adja meg a(z) --report-azdo-groups off értéket. A stabil MTP 2.4.0-s kiadás alapértelmezés szerint letiltja a csoportokat. A(z) --report-azdo-groups on paramétert csak egyetlen assemblyhez vagy sorosított assembly-végrehajtáshoz adja át.

Megjegyzés:

Az MTP-verzió oszlop felsorolja az egyes beállításokat tartalmazó első MTP-verziót. Maga az Azure DevOps-bővítmény az MTP 1.9.0-ban vált stabillá a --report-azdo és --report-azdo-severity használatával; a többi lehetőséget az MTP 2.3.0-ban vagy 2.4.0-ban adták hozzá.

A bővítmény a környezeti változó ellenőrzésével TF_BUILD automatikusan észleli, hogy folyamatos integrációs (CI) környezetben fut.

Az MTP 2.4.0-tól kezdve Azure DevOps Markdown-összegzések összesítik az eredményeket az összes tesztmodulban egy dotnet test meghívásban. Ha a kódlefedettség is engedélyezve van, az összegzés tartalmazza a fedezett és a teljes számokat, a százalékos értékeket, a küszöbérték-eredményeket, valamint egy mutatót, ha a lefedettségi adatok részlegesek.

GitHub Actions jelentések

A GitHub Actions-jelentés a GitHub Actions natív munkafolyamat-parancsait adja ki, így a tesztfuttatások elsőrangú élményt nyújtanak a futtatókörnyezetben: összeállításonkénti naplócsoportokat, sikertelen és kihagyott tesztek annotációit (amelyek a munkafolyamat Annotations lapján jelennek meg, illetve amikor a forráshely feloldható, a lekérési kérelem Files changed diffjében is), a GITHUB_STEP_SUMMARY által hivatkozott fájlhoz hozzáfűzött Markdown-formátumú feladat-összefoglalót, valamint a lassú tesztekre vonatkozó értesítéseket.

A bővítményhez szükség van a Microsoft.Testing.Extensions.GitHubActionsReport NuGet-csomagra.

A bővítmény csak akkor aktiválódik, ha a futtatás GitHub Actions van (a GITHUB_ACTIONS környezeti változó true) és a --report-gh kapcsoló be van állítva; ellenkező esetben semmit sem tesz. Ha be van kapcsolva, minden funkció alapértelmezés szerint engedélyezett, és a saját --report-gh-* beállításával külön-külön kikapcsolható.

Important

Az --report-gh beállítás ehhez tartozik: Microsoft.Testing.Extensions.GitHubActionsReport. A GitHubActionsTestLogger csomag egy másik lehetőséget kínál. --report-github A beállítások nem aliasok, és csak akkor működnek, ha a tesztprojekt regisztrálja azt a csomagot, amely a beállítás tulajdonosa.

Megjegyzés:

A bővítmény az MTP 2.3.0-tól érhető el. Az MTP 2.4.0-tól kezdve a nyilvános belépési pontok már nem kísérleti jellegűek.

Manuális regisztráció

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

Beállítások

Lehetőség MTP-verzió Description
--report-gh 2.3.0 Engedélyezi a GitHub Actions jelentésgenerátort, így a teszt munkafolyamat-parancsokat bocsát ki. A futtatásnak a GitHub Actionsben kell történnie.
--report-gh-groups 2.3.0 Engedélyezi vagy letiltja a szerelvényenkénti naplócsoportokat. Az érvényes értékek az (alapértelmezett) és a onoff. Szükséges --report-gh.
--report-gh-annotations 2.3.0 Engedélyezi vagy letiltja a sikertelen és kihagyott tesztekhez tartozó széljegyzeteket. Az érvényes értékek az (alapértelmezett) és a onoff. Szükséges --report-gh.
--report-gh-step-summary 2.3.0 Azt szabályozza, hogy a bővítmény egy Markdown-feladat összefoglalását írja-e a hivatkozott GITHUB_STEP_SUMMARYfájlba. Az érvényes értékek: on (alapértelmezett), off, valamint az MTP 2.4.0-tól kezdve on-failure. Szükséges --report-gh.
--report-gh-step-summary-sections 2.4.0 Az összefoglaló tartalom kiválasztása. Az érvényes értékek a következők test-results: , slow-tests, coverageés all (alapértelmezett). Használatához off és a --report-gh módtól eltérő összegzési mód szükséges.
--report-gh-slow-test-notices 2.3.0 Engedélyezi vagy letiltja a lassú tesztelési értesítéseket. Az érvényes értékek az (alapértelmezett) és a onoff. Szükséges --report-gh.
--report-gh-slow-test-threshold 2.3.0 A teszt futási időtartama a lassú tesztről szóló értesítés kibocsátása előtt. Elfogad egy önmagában megadott másodpercértéket, illetve egy mértékegység-utótaggal ellátott értéket, például 90s, 2m vagy 1.5h. Az alapértelmezett érték a 60s. Szükséges --report-gh.

Az MTP 2.4.0-tól kezdve GitHub Actions Markdown-összegzések összesítik az eredményeket egy dotnet test meghívás minden tesztmoduljában. Ha a kódlefedettség is engedélyezve van, jelölje ki coverage vagy all adja meg a fedezeti és teljes számokat, százalékértékeket, küszöbérték-eredményeket, valamint egy mutatót, ha a lefedettségi adatok részlegesek.