Software Architect

Configurar code coverage no VS Code

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:

Resumo da cobertura de testes

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.

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.