Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Queste funzionalità richiedono l'installazione di pacchetti NuGet aggiuntivi, come descritto in ogni sezione.
Suggerimento
Quando si usa Microsoft.Testing.Platform.MSBuild (incluso transitivamente da MSTest, NUnit e runner xUnit), queste estensioni vengono registrate automaticamente quando si installano i pacchetti NuGet, senza necessità di modifiche al codice. La registrazione manuale specificata in questo articolo è necessaria solo se il punto di ingresso generato automaticamente è stato disabilitato impostando <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.
Nomi file del report
Ogni estensione del report scrive il file nella directory dei risultati del test, che è possibile impostare con l'opzione --results-directory . Per eseguire l'override del nome, usare l'opzione corrispondente --report-*-filename . Ogni sezione del report elenca il nome predefinito per il report.
Un nome file può includere un percorso relativo che rimane all'interno della directory dei risultati del test e può usare i seguenti elementi di sostituzione (segnaposto):
| Segnaposto | Descrzione |
|---|---|
{asm} |
Nome dell'assembly di ingresso, o unknown quando non è disponibile. |
{tfm} |
Identificatore del framework di destinazione rilevato in fase di esecuzione, ad esempio net9.0. |
{arch} |
Architettura del processo, ad esempio x64, x86o arm64. |
{pname} |
Nome del processo. |
{pid} |
ID del processo. |
{time} |
Timestamp ad alta precisione. |
Ad esempio, --report-trx-filename "{asm}_{tfm}_{arch}.trx" riproduce il nome TRX predefinito.
Annotazioni
I nomi segnaposto fanno distinzione tra maiuscole e minuscole e usano lettere minuscole. Il supporto segnaposto per i nomi dei file di report è disponibile in MTP a partire dalla versione 2.3.0.
Consolidamento dei report
A partire dalla versione 2.4.0 di MTP, MTP esegue automaticamente la post-elaborazione degli artefatti del report dopo che un'invocazione dotnet test esegue più moduli di test o dopo che il supporto per i nuovi tentativi esegue più tentativi. La funzionalità è sperimentale in MTP 2.4.0.
Le estensioni TRX, JUnit, CTRF e HTML raggruppano gli artefatti compatibili in base al tipo di report e scrivono un report consolidato nella sottodirectory merged della directory dei risultati dei test. Il consolidamento CTRF combina i risultati del modulo e raggruppa i tentativi di riesecuzione nel risultato finale del test con la relativa cronologia. Il consolidamento HTML crea un riepilogo unito e mantiene i report originali per processo.
Per le estensioni di report personalizzati, l'API sperimentale IArtifactPostProcessor espone modalità di elaborazione separate RetryAttempts e TestModules. Per altre informazioni, vedere EstensioniIArtifactPostProcessor.
Report di test di Visual Studio (TRX)
Il file dei risultati del test Visual Studio (o TRX) è il formato predefinito per la pubblicazione dei risultati dei test. Questa estensione richiede il pacchetto NuGet Microsoft.Testing.Extensions.TrxReport .
Registrazione manuale
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddTrxReportProvider();
Annotazioni
Quando si usa la registrazione manuale, registrare il provider di report TRX per ultimo. L'implementazione corrente dipende dall'ordine di registrazione, quindi la registrazione dopo tutte le altre estensioni garantisce che acquisisca tutti i dati di test.
Annotazioni
Disponibile in MTP a partire dalla versione 1.9.0, il report TRX include il campo di test Description .
Annotazioni
Disponibile in MTP a partire dalla versione 2.3.0, il flusso dei risultati TRX viene trasmesso su disco man mano che l'esecuzione procede. Se l'host di test si arresta in modo anomalo, il file TRX mantiene i risultati raccolti prima dell'arresto anomalo.
Options
| Opzione | Descrzione |
|---|---|
--report-trx |
Genera il report TRX. |
--report-trx-filename |
Nome del rapporto TRX generato. A partire da MTP 2.3.0, il valore predefinito è il formato deterministico {asm}_{tfm}_{arch}.trx ; prima di MTP 2.3.0, il valore predefinito era <UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trx. Per personalizzare il nome, vedere Nomi di file di report. |
Il report viene salvato all'interno della cartella predefinita TestResults che può essere specificata tramite l'argomento della riga di comando --results-directory.
Report in HTML
Il report HTML crea un file HTML interattivo e autonomo per una sessione di test. Questa estensione richiede il pacchetto NuGet Microsoft.Testing.Extensions.HtmlReport.
Annotazioni
Disponibile in MTP a partire dalla versione 2.3.0. Questa estensione è sperimentale e le opzioni e il formato di output potrebbero cambiare in una versione futura.
Registrazione manuale
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddHtmlReportProvider();
Options
| Opzione | Descrzione |
|---|---|
--report-html |
Genera il report HTML. |
--report-html-filename |
Nome del report HTML generato. Il valore deve terminare con .html. Il valore predefinito è {asm}_{tfm}_{arch}.html. Per personalizzare il nome, vedere Nomi di file di report. Richiede --report-html. |
Report JUnit
Il report JUnit crea un file XML compatibile con JUnit per una sessione di test. Questa estensione richiede il pacchetto NuGet Microsoft.Testing.Extensions.JUnitReport.
Annotazioni
Disponibile in MTP a partire dalla versione 2.3.0. Questa estensione è sperimentale e le opzioni e il formato di output potrebbero cambiare in una versione futura.
A partire da MSTest.Sdk 4.3, abilitare questa estensione con <EnableMicrosoftTestingExtensionsJUnitReport>true</EnableMicrosoftTestingExtensionsJUnitReport>. L'estensione non fa parte dei profili MSTest.Sdk Default o AllMicrosoft.
Registrazione manuale
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddJUnitReportProvider();
Options
| Opzione | Descrzione |
|---|---|
--report-junit |
Genera il report XML JUnit. |
--report-junit-filename |
Nome del report XML JUnit generato. Il valore deve terminare con .xml. Il valore predefinito è {asm}_{tfm}_{arch}.xml. Per personalizzare il nome, vedere Nomi di file di report. Richiede --report-junit. |
Rapporti CTRF
Il report CTRF crea un file JSON che usa Common Test Report Format per una sessione di test. Questa estensione richiede il pacchetto NuGet Microsoft.Testing.Extensions.CtrfReport.
Annotazioni
Disponibile in MTP a partire dalla versione 2.3.0. Questa estensione è sperimentale e le opzioni e il formato di output potrebbero cambiare in una versione futura.
Registrazione manuale
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddCtrfReportProvider();
Options
| Opzione | Descrzione |
|---|---|
--report-ctrf |
Genera il report JSON CTRF. |
--report-ctrf-filename |
Il nome del report JSON CTRF generato. Il valore deve terminare con .json. Il valore predefinito è <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json. Per personalizzare il nome, vedere Nomi di file di report. Richiede --report-ctrf. |
A partire da MSTest 4.4, i risultati CTRF per i test rieseguiti includono i campi retries e retryAttempts. Quando un test ha esito positivo dopo un precedente tentativo non riuscito, il relativo risultato include anche flaky: true. Il riepilogo nel terminale identifica i test instabili e quelli rieseguiti. I report TRX e JUnit mantengono un risultato finale per ogni test anziché registrare ogni tentativo.
I report di Azure DevOps
Azure DevOps plugin di report migliora l'esecuzione dei test per gli sviluppatori che ospitano il codice su GitHub, ma compilano su agenti di compilazione di Azure DevOps. Aggiunge informazioni aggiuntive ai guasti per mostrare il problema direttamente nella pull request di GitHub.
annotazione 
Questa estensione richiede il pacchetto NuGet Microsoft.Testing.Extensions.AzureDevOpsReport .
Registrazione manuale
var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddAzureDevOpsProvider();
Options
| Opzione | Versione MTP | Descrzione |
|---|---|---|
--report-azdo |
1.9.0 | Abilita il generatore di report Azure DevOps. Gli errori e gli avvisi vengono scritti nell'output in un formato comprensibile Azure DevOps. |
--report-azdo-severity |
1.9.0 | Gravità da usare per gli eventi segnalati. I valori validi sono error (impostazione predefinita) e warning. |
--report-azdo-groups |
2.4.0 | Abilita o disabilita i gruppi di log per ogni assembly. Quando è abilitata, l'output di ogni assembly di test viene visualizzato in una sezione comprimibile del log di Azure Pipelines. I valori validi sono on e off. Le build di anteprima di MTP 2.4.0 usano on come impostazione predefinita; la versione stabile di MTP 2.4.0 usa off come impostazione predefinita. Richiede --report-azdo. |
--report-azdo-annotations |
2.4.0 | Abilita o disabilita le annotazioni per i test non riusciti e ignorati. I valori validi sono on (impostazione predefinita) e off. Richiede --report-azdo. |
--report-azdo-flaky-history |
2.3.0 | Interroga la cronologia dei risultati dei test di Azure DevOps degli ultimi N giorni (1-90) e annota gli esiti negativi segnalati con informazioni sul carattere intermittente. Richiede --report-azdo. |
--report-azdo-demote-known-flaky |
2.3.0 | Declassa da errori ad avvisi gli errori intermittenti nella finestra della cronologia di Azure DevOps quando sono sufficientemente frequenti (la soglia predefinita è del 25%). Richiede --report-azdo e --report-azdo-flaky-history. |
--report-azdo-quarantine-file |
2.3.0 | Percorso di un file di testo in cui sono elencati i nomi completi dei test in quarantena o i modelli GLOB. Gli errori corrispondenti vengono segnalati come avvisi. Richiede --report-azdo. |
--report-azdo-summary |
2.3.0 | Scrive un riepilogo del job in Markdown al termine dell'esecuzione del test e lo carica tramite ##vso[task.uploadsummary]. Un argomento percorso file facoltativo sostituisce il percorso predefinito ({testResultsDir}/azdo-summary-{tfm}.md). Richiede --report-azdo. |
--report-azdo-stackframe-filter |
2.3.0 | Aggiunge modelli regex, confrontati con il prefisso di tipo completo di ogni stack frame, ignorati quando l'estensione individua il sito di chiamata dell'utente per aggiungere annotazioni. L'opzione è ripetibile, fino a 16 modelli e ogni modello viene compilato con un timeout di corrispondenza di 500 ms. Questi modelli si aggiungono ai prefissi integrati dell’estensione per l’implementazione delle asserzioni MSTest. Richiede --report-azdo. |
--report-azdo-upload-artifacts |
2.3.0 | Carica i file dei risultati del test e/o aggiunge tag di compilazione a Azure DevOps. I valori validi sono off (impostazione predefinita), tags-only, filese all. |
--report-azdo-upload-artifact-include |
2.3.0 | Include i file nel caricamento dell'artefatto Azure DevOps usando modelli GLOB relativi alla directory dei risultati del test. Di default è **/*. Richiede --report-azdo-upload-artifacts che sia un valore diverso da off. |
--report-azdo-upload-artifact-exclude |
2.3.0 | Esclude i file dal caricamento dell'artefatto Azure DevOps usando modelli GLOB relativi alla directory dei risultati del test. Richiede --report-azdo-upload-artifacts che sia un valore diverso da off. |
--report-azdo-upload-artifact-name |
2.3.0 | Sostituisce il nome del contenitore artefatto di Azure DevOps. Di default è TestResults_{assemblyName}_{tfm}. Richiede --report-azdo-upload-artifacts che sia un valore diverso da off. |
--publish-azdo-test-results |
2.3.0 | Pubblica i risultati dei test nella scheda Azure DevOps Tests. |
--publish-azdo-run-name |
2.3.0 | Imposta un nome di esecuzione di test personalizzato Azure DevOps per la pubblicazione dei risultati del test live. Richiede --publish-azdo-test-results. |
Avvertimento
Non abilitare i gruppi quando più assembly di test vengono eseguiti in parallelo.
##[group] Azure DevOps e ##[endgroup] i comandi di formattazione sono sequenziali e anonimi. L'output dell'assemblaggio simultaneo può interlearsi, causare un annidamento errato dei gruppi e collocare righe nell'assemblaggio sbagliato. Se utilizzi una build di anteprima di MTP 2.4.0, passa --report-azdo-groups off per disabilitare i gruppi. La versione stabile di MTP 2.4.0 disabilita i gruppi per impostazione predefinita. Passa --report-azdo-groups on solo per un solo assembly o per l'esecuzione serializzata di un assembly.
Annotazioni
La colonna versione MTP elenca la prima versione MTP che contiene ogni opzione. L'estensione Azure DevOps è diventata stabile in MTP 1.9.0 con --report-azdo e --report-azdo-severity; le opzioni rimanenti sono state aggiunte in MTP 2.3.0 o 2.4.0.
L'estensione rileva automaticamente che è in esecuzione nell'ambiente di integrazione continua (CI) controllando la TF_BUILD variabile di ambiente.
A partire da MTP 2.4.0, Azure DevOps Markdown riepiloga i risultati aggregati in ogni modulo di test in una dotnet test chiamata. Quando si abilita anche il code coverage, il riepilogo include conteggi coperti e totali, percentuali, risultati di soglia e un indicatore quando i dati di copertura sono parziali.
Report di GitHub Actions
Il report GitHub Actions genera comandi di workflow nativi di GitHub Actions, in modo che le esecuzioni dei test offrano un'esperienza ottimale sul runner: gruppi di log per assembly, annotazioni per i test non riusciti e ignorati (visibili nella scheda Annotations del workflow e, quando la posizione del codice sorgente può essere risolta, nel diff della scheda Files changed della pull request), un riepilogo del job in Markdown aggiunto al file a cui fa riferimento GITHUB_STEP_SUMMARY, e avvisi sui test lenti.
Questa estensione richiede il pacchetto NuGet Microsoft.Testing.Extensions.GitHubActionsReport.
L'estensione viene attivata solo quando l'esecuzione è in GitHub Actions (la GITHUB_ACTIONS variabile di ambiente è true) e l'opzione --report-gh è impostata; in caso contrario, non esegue alcuna operazione. Quando attiva, ogni funzionalità è abilitata per impostazione predefinita e può essere disattivata singolarmente con la relativa --report-gh-* opzione.
Importante
L'opzione --report-gh appartiene a Microsoft.Testing.Extensions.GitHubActionsReport. Il pacchetto GitHubActionsTestLogger offre un'opzione diversa, --report-github. Le opzioni non sono alias e funzionano solo quando il progetto di test registra il pacchetto proprietario dell'opzione .
Annotazioni
L'estensione è disponibile a partire da MTP 2.3.0. A partire da MTP 2.4.0, i punti di ingresso pubblici non sono più sperimentali.
Registrazione manuale
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddGitHubActionsProvider();
Options
| Opzione | Versione MTP | Descrzione |
|---|---|---|
--report-gh |
2.3.0 | Abilita il generatore di report GitHub Actions in modo che le esecuzioni di test generano comandi del flusso di lavoro. Richiede che l'esecuzione avvenga su GitHub Actions. |
--report-gh-groups |
2.3.0 | Abilita o disabilita i gruppi di log per ogni assembly. I valori validi sono on (impostazione predefinita) e off. Richiede --report-gh. |
--report-gh-annotations |
2.3.0 | Abilita o disabilita le annotazioni per i test non riusciti e ignorati. I valori validi sono on (impostazione predefinita) e off. Richiede --report-gh. |
--report-gh-step-summary |
2.3.0 | Controlla se l'estensione scrive un riepilogo del processo Markdown nel file a cui fa GITHUB_STEP_SUMMARYriferimento . I valori validi sono on (impostazione predefinita), offe, a partire da MTP 2.4.0, on-failure. Richiede --report-gh. |
--report-gh-step-summary-sections |
2.4.0 | Seleziona il contenuto di riepilogo. I valori validi sono test-results, slow-tests, coveragee all (impostazione predefinita). Richiede --report-gh e una modalità di riepilogo diversa da off. |
--report-gh-slow-test-notices |
2.3.0 | Abilita o disabilita gli avvisi di test lenti. I valori validi sono on (impostazione predefinita) e off. Richiede --report-gh. |
--report-gh-slow-test-threshold |
2.3.0 | Tempo di esecuzione di un test prima che venga emesso un avviso di test lento. Accetta un numero bare di secondi o un valore con un suffisso di unità, 90sad esempio , 2mo 1.5h. Il valore predefinito è 60s. Richiede --report-gh. |
A partire da MTP 2.4.0, GitHub Actions markdown riepiloga i risultati aggregati in ogni modulo di test in una dotnet test chiamata. Quando si abilita anche la copertura del codice, selezionare coverage o all per includere il numero di elementi coperti e il totale, le percentuali, i risultati delle soglie e un indicatore che segnala quando i dati di copertura sono parziali.