Compartilhar via


Extensões de cobertura de código

Este artigo lista e explica todas as extensões Microsoft.Testing.Platform relacionadas ao recurso de cobertura de código.

Você pode usar o recurso de cobertura de código para determinar qual proporção do código do projeto está sendo testada por testes codificados, como testes de unidade. Para se proteger efetivamente contra bugs, os testes devem exercitar ou cobrir uma grande proporção do seu código.

Cobertura de código da Microsoft

A análise de Cobertura de Código da Microsoft é possível para código CLR (gerenciado) e não gerenciado (nativo). Há suporte para instrumentação estática e dinâmica. Essa extensão é enviada como parte do pacote NuGet Microsoft.Testing.Extensions.CodeCoverage.

Nota

A cobertura de código não gerenciada (nativa) está desabilitada na extensão por padrão. Use sinalizadores EnableStaticNativeInstrumentation e EnableDynamicNativeInstrumentation para habilitá-lo, se necessário. Para obter mais informações sobre a cobertura de código não gerenciado, consulte Instrumentação nativa estática e dinâmica.

Importante

O pacote é enviado com a biblioteca Microsoft .NET, que utiliza um modelo de licenciamento fechado, mas gratuito para uso.

Para obter mais informações sobre a cobertura de código da Microsoft, consulte sua página do GitHub.

A Cobertura de Código da Microsoft fornece as seguintes opções:

Opção Descrição
--coverage Colete a cobertura de código usando a ferramenta de cobertura dotnet.
--coverage-output O nome ou o caminho do arquivo de cobertura produzido. Por padrão, o arquivo é TestResults/<guid>.coverage.
--coverage-output-format Formato de arquivo de saída. Os valores com suporte são: coverage, xmle cobertura. O padrão é coverage.
--coverage-settings Configurações de cobertura de código XML.

Para obter mais informações sobre as opções disponíveis, consulte as configurações e os exemplos .

Nota

O valor padrão de IncludeTestAssembly em Microsoft.Testing.Extensions.CodeCoverage é false, enquanto ele costumava estar true no VSTest. Isso significa que os projetos de teste são excluídos por padrão. Para obter mais informações, consulte a configuração de Cobertura de Código.

Cobertor

Importante

O pacote NuGet coverlet.collector foi projetado especificamente para VSTest e não pode ser usado com Microsoft.Testing.Platform.

No momento, não há nenhuma extensão do Coverlet, mas você pode usar a ferramenta global do .NET do Coverlet.

Supondo que você já tenha instalado a ferramenta global Coverlet, agora você pode executar:

coverlet .\bin\Debug\net8.0\TestProject2.dll --target "dotnet" --targetargs "test .\bin\Debug\net8.0\TestProject2.dll --no-build"