Na jornada para migração de todo o fluxo de trabalho em .NET do Visual Studio code para o VS Code, vamos hoje ver como resolver o problema da análise de cobertura de testes.
Com o .net core, já temos como realizar a análise da cobertura de testes, bastando para isso adicionar o pacote coverlet.msbuild aos projetos de teste, e executar os testes com o comando
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=lcov /p:CoverletOutput=./lcov.info
Isso já é o suficiente para que tenhamos um resumo da cobertura de teste:
Para integrarmos a geração e visualização da cobertura de testes com o VS Code, começamos por alterar a nossa definição de task de teste, informando os parametros adicionais (essa configuração parte do principio que temos um arquivo sln na raiz do projeto):
{
"label": "test",
"command": "dotnet",
"type": "process",
"args": [
"test",
"${workspaceFolder}",
"/p:CollectCoverage=true",
"/p:CoverletOutputFormat=lcov",
"/p:CoverletOutput=./lcov.info",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile",
"group": {
"kind": "test",
"isDefault": true
}
}
Assim, sempre que rodamos a task de teste, atualizamos o arquivo de cobertura de testes.
Para visualizar o código coberto pelos testes, uso a extensão Coverage Gutters.
Caso esteja usando a extensão .NET Core Test Explorer, basta adicionar a configuração adicional:
"dotnet-test-explorer.testArguments": "/p:CollectCoverage=true /p:CoverletOutputFormat=lcov /p:CoverletOutput=./lcov.info"
para que os dados de cobertura sejam atualizados sempre que rodar os testes pelo test explorer.
Num próximo post, veremos como gerar um relatório completo de cobertura de testes.