Testrapporter

Dessa funktioner kräver installation av ytterligare NuGet-paket, enligt beskrivningen i varje avsnitt.

Tips/Råd

När du använder Microsoft.Testing.Platform.MSBuild (ingår transitivt av MSTest, NUnit och xUnit-löpare) registreras dessa tillägg automatiskt när du installerar deras NuGet-paket – inga kodändringar behövs. Den manuella registrering som anges i den här artikeln krävs bara om du inaktiverade den automatiskt genererade startpunkten genom att ange <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Rapportfilnamn

Varje rapporttillägg skriver sin fil till testresultatkatalogen, som du kan ange med alternativet --results-directory . Om du vill åsidosätta namnet använder du matchningsalternativet --report-*-filename . Varje rapportavsnitt visar standardnamnet för rapporten.

Ett filnamn kan innehålla en relativ sökväg som finns kvar i testresultatkatalogen och kan använda följande ersättningsobjekt (platshållare):

Placeholder Description
{asm} Namn på inmatningssammansättning eller unknown när det inte är tillgängligt.
{tfm} Målramverkets moniker identifierades vid körning, till exempel net9.0.
{arch} Processarkitektur, till exempel x64, x86eller arm64.
{pname} Processnamn.
{pid} Process-ID.
{time} Tidsstämpel med hög precision.

Till exempel --report-trx-filename "{asm}_{tfm}_{arch}.trx" återskapar standard-TRX-namnet.

Anmärkning

Namn på platshållare är skiftlägeskänsliga och skrivs med gemener. Platshållarstöd för rapportfilnamn är tillgängligt i MTP från och med version 2.3.0.

Konsolidering av rapporter

Från och med MTP 2.4.0 efterprocessar MTP automatiskt rapportartefakter efter att ett dotnet test anrop har kört flera testmoduler eller efter att återförsöksstöd har kört flera försök. Funktionen är experimentell i MTP 2.4.0.

TRX-, JUnit-, CTRF- och HTML-tilläggen grupperar kompatibla artefakter efter rapporttyp och skriver en konsoliderad rapport under underkatalogen för testresultatkatalogen merged . CTRF-konsolidering kombinerar modulresultat och komprimerar återförsök till det slutliga testresultatet med återförsökshistorik. HTML-konsolidering skapar en sammanslagen sammanfattning och bevarar de ursprungliga rapporterna per process.

För anpassade rapporttillägg exponerar det experimentella IArtifactPostProcessor API:et separata TestModules lägen och RetryAttempts bearbetningslägen. Mer information finns i TilläggenIArtifactPostProcessor.

Visual Studio testrapporter (TRX)

Den Visual Studio testresultatfilen (eller TRX) är standardformatet för publicering av testresultat. Det här tillägget kräver NuGet-paketet Microsoft.Testing.Extensions.TrxReport .

Manuell registrering

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

Anmärkning

När du använder manuell registrering registrerar du TRX-rapportprovidern senast. Den aktuella implementeringen beror på registreringsordningen, så om du registrerar den efter alla andra tillägg ser du till att den samlar in alla testdata.

Anmärkning

TRX-rapporten är tillgänglig i MTP från och med version 1.9.0 och innehåller testfältet Description .

Anmärkning

Tillgängligt i MTP från och med version 2.3.0 skrivs TRX-resultat till disk medan körningen pågår. Om testvärden kraschar bevarar TRX-filen de resultat som samlats in före kraschen.

Alternativ

Alternativ Description
--report-trx Genererar TRX-rapporten.
--report-trx-filename Namnet på den genererade TRX-rapporten. Från och med MTP 2.3.0 är standardvärdet det deterministiska {asm}_{tfm}_{arch}.trx formuläret. Före MTP 2.3.0 var <UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trxstandardvärdet . Information om hur du anpassar namnet finns i Rapportfilnamn.

Rapporten sparas i standardmappen TestResults som kan anges via kommandoradsargumentet --results-directory.

HTML-rapporter

HTML-rapporten skapar en interaktiv, fristående HTML-fil för en testsession. Det här tillägget kräver Microsoft. Testing.Extensions.HtmlReport NuGet-paketet.

Anmärkning

Finns i MTP från och med version 2.3.0. Det här tillägget är experimentellt och dess alternativ och utdataformat kan ändras i en framtida version.

Manuell registrering

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

Alternativ

Alternativ Description
--report-html Genererar HTML-rapporten.
--report-html-filename Namnet på den genererade HTML-rapporten. Värdet måste sluta med .html. Standardvärdet är {asm}_{tfm}_{arch}.html. Information om hur du anpassar namnet finns i Rapportfilnamn. Kräver --report-html.

JUnit-rapporter

JUnit-rapporten skapar en JUnit-kompatibel XML-fil för en testsession. Det här tillägget kräver Microsoft. Testing.Extensions.JUnitReport NuGet-paketet.

Anmärkning

Finns i MTP från och med version 2.3.0. Det här tillägget är experimentellt och dess alternativ och utdataformat kan ändras i en framtida version.

Från och med MSTest.Sdk 4.3 aktiverar du det här tillägget med <EnableMicrosoftTestingExtensionsJUnitReport>true</EnableMicrosoftTestingExtensionsJUnitReport>. Tillägget är inte en del av MSTest.Sdk-profilerna Default eller AllMicrosoft .

Manuell registrering

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

Alternativ

Alternativ Description
--report-junit Genererar JUnit XML-rapporten.
--report-junit-filename Namnet på den genererade JUnit XML-rapporten. Värdet måste sluta med .xml. Standardvärdet är {asm}_{tfm}_{arch}.xml. Information om hur du anpassar namnet finns i Rapportfilnamn. Kräver --report-junit.

CTRF-rapporter

CTRF-rapporten skapar en JSON-fil som använder det gemensamma testrapportformatet för en testsession. Det här tillägget kräver Microsoft. Testing.Extensions.CtrfReport NuGet-paketet.

Anmärkning

Finns i MTP från och med version 2.3.0. Det här tillägget är experimentellt och dess alternativ och utdataformat kan ändras i en framtida version.

Manuell registrering

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

Alternativ

Alternativ Description
--report-ctrf Genererar CTRF JSON-rapporten.
--report-ctrf-filename Namnet på den genererade CTRF JSON-rapporten. Värdet måste sluta med .json. Standardvärdet är <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json. Information om hur du anpassar namnet finns i Rapportfilnamn. Kräver --report-ctrf.

Från och med MSTest 4.4 innehåller CTRF-resultaten för nya tester fälten retries och retryAttempts . När ett test klaras efter ett tidigare misslyckat försök innehåller resultatet också flaky: true. Sammanfattningen i terminalen identifierar instabila och omkörda tester. TRX- och JUnit-rapporter behåller ett slutligt resultat per test i stället för att registrera varje försök.

Azure DevOps rapporter

Azure DevOps rapportplugin förbättrar testkörningen för utvecklare som är värdar för sin kod på GitHub, men använder Azure DevOps byggagenter. Den tillhandahåller mer information om fel för att visa dessa direkt i GitHub PR.

Felanmärkningar i GitHub PR-filernas vy

Det här tillägget kräver NuGet-paketet Microsoft.Testing.Extensions.AzureDevOpsReport .

Manuell registrering

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

Alternativ

Alternativ MTP-version Description
--report-azdo 1.9.0 Aktiverar Azure DevOps rapportgenerator. Fel och varningar skrivs till utdata i ett format som Azure DevOps förstår.
--report-azdo-severity 1.9.0 Allvarlighetsgrad att använda för rapporterade händelser. Giltiga värden är error (standard) och warning.
--report-azdo-groups 2.4.0 Aktiverar eller inaktiverar logggrupper för varje sammansättning. När de är aktiverade visas testsammansättningens utdata i ett hopfällbart avsnitt i Azure-pipelines loggen. Giltiga värden är on och off. MTP 2.4.0-förhandsversioner har som standard on; den stabila MTP 2.4.0-versionen har som standard off. Kräver --report-azdo.
--report-azdo-annotations 2.4.0 Aktiverar eller inaktiverar anteckningar för misslyckade och överhoppade tester. Giltiga värden är on (standard) och off. Kräver --report-azdo.
--report-azdo-flaky-history 2.3.0 Hämtar Azure DevOps-testresultathistorik för de senaste N dagarna (1–90) och annoterar rapporterade misslyckanden med kontext om instabilitet. Kräver --report-azdo.
--report-azdo-demote-known-flaky 2.3.0 Nedgraderar misslyckanden som är tillräckligt instabila i historikfönstret i Azure DevOps (standardtröskelvärdet är 25 %) från fel till varningar. Kräver --report-azdo och --report-azdo-flaky-history.
--report-azdo-quarantine-file 2.3.0 Sökväg till en textfil som listar fullständigt kvalificerade namn för test i karantän eller globmönster. Misslyckanden vid matchning rapporteras som varningar. Kräver --report-azdo.
--report-azdo-summary 2.3.0 Skriver en Markdown-jobbsammanfattning i slutet av testkörningen och laddar upp den via ##vso[task.uploadsummary]. Ett valfritt filsökvägsargument åsidosätter standardplatsen ({testResultsDir}/azdo-summary-{tfm}.md). Kräver --report-azdo.
--report-azdo-stackframe-filter 2.3.0 Lägger till regexmönster som matchas mot det fullständigt kvalificerade typprefixet för varje stackframe och som ignoreras när tillägget letar upp användarens anropsställe för att annotera. Alternativet är repeterbart, upp till 16 mönster, och varje mönster kompileras med en tidsgräns på 500 ms matchning. Dessa mönster läggs till utöver tilläggets inbyggda prefix för MSTest-assertionsimplementering. Kräver --report-azdo.
--report-azdo-upload-artifacts 2.3.0 Laddar upp testresultatfiler och/eller lägger till byggtaggar i Azure DevOps. Giltiga värden är off (standard), tags-only, filesoch all.
--report-azdo-upload-artifact-include 2.3.0 Innehåller filer i Azure DevOps artefaktuppladdning med hjälp av globmönster i förhållande till katalogen för testresultat. Standardinställningen är **/*. Kräver --report-azdo-upload-artifacts att vara ett annat värde än off.
--report-azdo-upload-artifact-exclude 2.3.0 Exkluderar filer från Azure DevOps artefaktuppladdning med hjälp av globmönster i förhållande till katalogen med testresultat. Kräver --report-azdo-upload-artifacts att vara ett annat värde än off.
--report-azdo-upload-artifact-name 2.3.0 Åsidosätter namnet på artefaktcontainern i Azure DevOps. Standardinställningen är TestResults_{assemblyName}_{tfm}. Kräver --report-azdo-upload-artifacts att vara ett annat värde än off.
--publish-azdo-test-results 2.3.0 Publicerar testresultat live på fliken Azure DevOps Tests.
--publish-azdo-run-name 2.3.0 Anger ett anpassat Azure DevOps testkörningsnamn för live-testresultatpublicering. Kräver --publish-azdo-test-results.

Varning

Aktivera inte grupper när flera testsammansättningar körs parallellt. ##[group] Azure DevOps och ##[endgroup] formateringskommandon är sekventiella och anonyma. Samtidiga sammansättningsutdata kan sammanfläta, orsaka felaktig gruppkapsling och placera rader under fel sammansättning. Om du använder en förhandsversion av MTP 2.4.0 anger du --report-azdo-groups off för att inaktivera grupper. Den stabila MTP 2.4.0-versionen inaktiverar grupper som standard. Ange --report-azdo-groups on endast för en enskild sammanställning eller serialiserad körning av sammanställning.

Anmärkning

I kolumnen MTP-version visas den första MTP-versionen som innehåller varje alternativ. Själva Azure DevOps-tillägget blev stabilt i MTP 1.9.0 med --report-azdo och --report-azdo-severity; de återstående alternativen lades till i MTP 2.3.0 eller 2.4.0.

Tillägget identifierar automatiskt att det körs i en CI-miljö (continuous integration) genom att kontrollera TF_BUILD miljövariabeln.

Från och med MTP 2.4.0 sammanställer Azure DevOps Markdown-sammanfattningar resultaten för varje testmodul i ett dotnet test anrop. När du även aktiverar kodtäckning innehåller sammanfattningen täckta och totala antal, procentandelar, tröskelresultat och en indikator när täckningsdata är partiella.

rapporter för GitHub Actions

Rapporten för GitHub Actions genererar GitHub Actions-interna arbetsflödeskommandon så att testkörningar ger en förstklassig upplevelse i runnern: logggrupper per samling, annoteringar för misslyckade och överhoppade tester (visas på fliken Annotations i arbetsflödet och, när källplatsen kan fastställas, i pull requestens diff under Files changed), en Markdown-jobbsammanfattning som läggs till i filen som refereras av GITHUB_STEP_SUMMARY, och aviseringar om långsamma tester.

Det här tillägget kräver Microsoft. Testing.Extensions.GitHubActionsReport NuGet-paketet.

Tillägget aktiveras endast när körningen är på GitHub Actions (GITHUB_ACTIONSmiljövariabeln är true) och växeln --report-gh har angetts. Annars gör den ingenting. När den är aktiv aktiveras varje funktion som standard och kan inaktiveras individuellt med dess --report-gh-* alternativ.

Important

Alternativet --report-gh tillhör Microsoft.Testing.Extensions.GitHubActionsReport. GitHubActionsTestLogger-paketet innehåller ett annat alternativ, --report-github. Alternativen är inte alias och fungerar bara när testprojektet registrerar paketet som äger alternativet.

Anmärkning

Tillägget är tillgängligt från och med MTP 2.3.0. Från och med MTP 2.4.0 är dess offentliga startpunkter inte längre experimentella.

Manuell registrering

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

Alternativ

Alternativ MTP-version Description
--report-gh 2.3.0 Aktiverar GitHub Actions rapportgenerator så att testkörningar genererar arbetsflödeskommandon. Kräver att körningen måste köras på GitHub Actions.
--report-gh-groups 2.3.0 Aktiverar eller inaktiverar logggrupper för varje sammansättning. Giltiga värden är on (standard) och off. Kräver --report-gh.
--report-gh-annotations 2.3.0 Aktiverar eller inaktiverar anteckningar för misslyckade och överhoppade tester. Giltiga värden är on (standard) och off. Kräver --report-gh.
--report-gh-step-summary 2.3.0 Styr om tillägget skriver en Markdown-jobbsammanfattning till filen som refereras av GITHUB_STEP_SUMMARY. Giltiga värden är on (standard), offoch börjar med MTP 2.4.0, on-failure. Kräver --report-gh.
--report-gh-step-summary-sections 2.4.0 Väljer sammanfattningsinnehåll. Giltiga värden är test-results, slow-tests, coverageoch all (standard). Kräver --report-gh och ett annat sammanfattningsläge än off.
--report-gh-slow-test-notices 2.3.0 Aktiverar eller inaktiverar meddelanden om långsamma tester. Giltiga värden är on (standard) och off. Kräver --report-gh.
--report-gh-slow-test-threshold 2.3.0 Den tid som ett test kan köras innan ett meddelande om långsamt test genereras. Accepterar ett antal sekunder eller ett värde med ett enhetssuffix, till exempel 90s, 2meller 1.5h. Standardvärdet är 60s. Kräver --report-gh.

Från och med MTP 2.4.0 sammanställer GitHub Actions Markdown-sammanfattningar resultaten för varje testmodul i ett dotnet test anrop. När du också aktiverar kodtäckning väljer du coverage eller all för att inkludera antal täckta och totala, procenttal, tröskelvärdesresultat och en indikator som visar när täckningsdata är ofullständiga.