Condividi tramite


Copertura del codice

Suggerimento

Quando si usa Microsoft.Testing.Platform.MSBuild (incluso transitivamente da MSTest, NUnit e runner xUnit), le estensioni di code coverage vengono registrate automaticamente quando si installano i pacchetti NuGet, senza necessità di modifiche al codice.

È possibile usare la funzionalità di code coverage per determinare la proporzione del codice del project sottoposto a test codificati, ad esempio unit test. Per proteggersi efficacemente dai bug, i test devono esercitare o coprire gran parte del tuo codice.

Copertura del codice di Microsoft

L'analisi del code coverage di Microsoft è possibile sia per il codice gestito (CLR) che per il codice non gestito (nativo). Sono supportati sia la strumentazione statica che quella dinamica. Questa estensione richiede il pacchetto NuGet Microsoft.Testing.Extensions.CodeCoverage .

Annotazioni

La copertura del codice non gestito (nativo) è disabilitata per impostazione predefinita nell'estensione. Usare flag EnableStaticNativeInstrumentation e EnableDynamicNativeInstrumentation per abilitarlo, se necessario. Per ulteriori informazioni sulla copertura del codice non gestita, vedere strumentazione statica e dinamica nativa.

Importante

Il pacchetto viene fornito con la libreria Microsoft .NET con un modello di licenza a codice sorgente chiuso gratuito da usare.

Per ulteriori informazioni sulla copertura del codice di Microsoft, visitare la sua pagina GitHub.

Options

Opzione Descrzione
--coverage Raccogliere la copertura del codice usando lo strumento dotnet-coverage.
--coverage-output Nome o percorso del file di copertura prodotto. Per impostazione predefinita, il file è TestResults/<guid>.coverage.
--coverage-output-format Formato del file di output. I valori supportati sono: coverage, xmle cobertura. Il valore predefinito è coverage.
--coverage-settings impostazioni di code coverage XML.

Per altre informazioni sulle opzioni disponibili, vedere settings e samples.

Annotazioni

Il valore predefinito di IncludeTestAssembly in Microsoft.Testing.Extensions.CodeCoverage è false, mentre è true in VSTest. Ciò significa che i progetti di test vengono esclusi per impostazione predefinita. Per altre informazioni, vedere Code Coverage configuration.

Compatibilità delle versioni

La tabella seguente illustra la compatibilità tra versioni diverse di Microsoft.Testing.Extensions.CodeCoverage e Microsoft.Testing.Platform:

Microsoft.Testing.Extensions.CodeCoverage Microsoft.Testing.Platform
18.1.x 2.0.x
18.0.x 1.8.x
17.14.x 1.6.2

Annotazioni

Per la migliore compatibilità e le funzionalità più recenti, è consigliabile usare le versioni più recenti di entrambi i pacchetti.

Copriletto

Coverlet Microsoft Testing Platform Integration (coverlet.MTP) è un'estensione nativa per Microsoft.Testing.Platform che implementa la coverlet.collector funzionalità.

Aggiungere il pacchetto NuGet coverlet.MTP al project di test:

dotnet add package coverlet.MTP

Per raccogliere la copertura del codice, eseguire i test con il flag --coverlet.

dotnet test --coverlet

In alternativa, eseguire il file eseguibile di test con il --coverlet flag :

dotnet exec <test-assembly.dll> --coverlet

Dopo l'esecuzione del test, viene generato un coverage.json file contenente i risultati nella directory corrente.

Options

Opzione Descrzione
--coverlet Abilitare la raccolta dei dati di copertura del codice.
--coverlet-output-format <format> Formati di output per il report di copertura. Formati supportati: json, lcov, opencovercobertura, e teamcity. Specificare più volte per includere più formati.
--coverlet-include <filter> Includere gli assembly che corrispondono ai filtri, come [Assembly]Type. Specificare più volte per aggiungere altri filtri.
--coverlet-include-directory <path> Includere directory aggiuntive per i file di origine. Specificare ripetutamente per aggiungere altre directory.
--coverlet-exclude <filter> Escludi assembly che corrispondono ai filtri, ad esempio [Assembly]Type. Specificare più volte per aggiungere altri filtri.
--coverlet-exclude-by-file <pattern> Escludere i file di origine che corrispondono ai modelli GLOB. Specificare più volte per aggiungere altri schemi.
--coverlet-exclude-by-attribute <attribute> Escludere metodi o classi decorati con attributi specifici. Specificare più volte per aggiungere altri attributi.
--coverlet-include-test-assembly Includere l'assembly di test nel report di copertura.
--coverlet-single-hit Limitare il numero di riscontri a uno per ogni posizione nel codice.
--coverlet-skip-auto-props Escludere le proprietà implementate automaticamente nella copertura.
--coverlet-does-not-return-attribute <attribute> Attributi che contrassegnano i metodi come non restituiscono. Specificare più volte per aggiungere altri attributi.
--coverlet-exclude-assemblies-without-sources <value> Escludere le assembly senza codice sorgente. Valori: MissingAll, MissingAnye None.

Per altre informazioni, vedere la documentazione di coverlet.MTP.