Estou usando o Mocha para testar meu aplicativo NodeJS. Não consigo descobrir como usar seu recurso de cobertura de código. Tentei pesquisar no Google, mas não encontrei nenhum tutorial adequado. Por favor ajude.
node.js
unit-testing
code-coverage
mocha
Tusharmath
fonte
fonte
istanbul cover node_modules/mocha/bin/_mocha
.istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
é um atalho canônico para./node_modules/.bin/
eistanbul/lib/cli.js
está aliasadoistanbul
na pasta bin. Então, aqui está um comando mais curto:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
Agora ( 2020 ) a maneira preferida de usar Istambul é através de sua "interface de linha de comando de última geração" nyc .
Configuração
Primeiro, instale-o no seu projeto com
Então, se você tiver um projeto baseado em npm, basta alterar o script de teste dentro do
scripts
objeto do seu arquivo package.json para executar a cobertura do código dos seus testes mocha :Corre
Agora execute seus testes
e você verá uma tabela como esta em seu console, logo após a saída dos testes:
Costumização
Relatório HTML
Apenas use
em vez de
text
. Agora ele produzirá um relatório dentro./coverage/index.html
.Formatos de relatório
Istambul suporta uma ampla variedade de formatos de relatório. Basta olhar para a biblioteca de relatórios para encontrar o mais útil para você. Basta adicionar uma
--reporter=REPORTER_NAME
opção para cada formato desejado. Por exemplo, comvocê terá o console e o relatório html.
Não execute a cobertura com o teste npm
Basta adicionar outro script no seu
package.json
e deixar otest
script apenas com o seu executor de teste (por exemplo, mocha):Agora execute esse script personalizado
para executar testes com cobertura de código.
Falha no teste de força se a cobertura do código for baixa
Falha se a cobertura total do código estiver abaixo de 90%:
Falha se a cobertura do código de pelo menos um arquivo estiver abaixo de 90%:
fonte
--reporter=html
habilitado, mas o arquivo html é esvaziar sempre, não há nada mostrado sobre blocos descobertos ou% coberto etc cabeçalhos apenas da tabelaO Blanket.js também funciona perfeitamente.
npm install --save-dev blanket
na frente do seu test / tests.js
corre
mocha -R html-cov > coverage.html
fonte