|
| 1 | +# Code Coverage |
| 2 | + |
| 3 | +> O Coverage tem o objetivo de analisar quanto % do seu código está coberto por teste, podemos utilizá-lo com o hoook no prepush para garantir que só seja posível realizar um push com x% do código coberto pelo teste. |
| 4 | +
|
| 5 | +Utiizaremos a biblioteca nyc para realizar o code coverage, execute o comanado `npm install --save-dev nyc` no terminal dentro da pasta do projeto. |
| 6 | + |
| 7 | +Configure o package.json conforme abaixo: |
| 8 | +```JS |
| 9 | +/* package.json */ |
| 10 | + "scripts": { |
| 11 | + "lint": "./node_modules/.bin/eslint src/*.js", |
| 12 | + "prepush": "npm run lint && npm run test:coverage", |
| 13 | + "test": "./node_modules/.bin/mocha tests/**/*.spec.js --require babel-register", |
| 14 | + "test:tdd": "./node_modules/.bin/mocha tests/**/*.spec.js --require babel-register --watch", |
| 15 | + "test:coverage": "nyc npm test" |
| 16 | + }, |
| 17 | + "nyc": { |
| 18 | + "functions": 80, |
| 19 | + "lines": 80, |
| 20 | + "check-coverage": true, |
| 21 | + "reporter": ["text", "html"], |
| 22 | + "exclude": ["tests/**"] |
| 23 | + }, |
| 24 | +``` |
| 25 | +A linha 12 garante que todos os push só rodem com sucesso se obtiver sucesso no lint(padrão do código) e sucesso no test:coverage(% de código testado conforme configurado no "nyc").<br/> |
| 26 | +`"prepush": "npm run lint && npm run test:coverage"` |
| 27 | + |
| 28 | +A linha 15 corresponde ao comando para executar o `test:coverage`<br/> |
| 29 | +`"test:coverage": "nyc npm test"` |
| 30 | + |
| 31 | +Na linha 17 está configurado como queremos nosso teste coverage |
| 32 | +```JS |
| 33 | +"nyc": { |
| 34 | + "functions": 80, //- 80% das funções devem ser cobertas por teste |
| 35 | + "lines": 80, //- 80% das linhas devem ser cobertas por teste |
| 36 | + "check-coverage": true, //- dever ser checkado o coverage |
| 37 | + "reporter": ["text", "html"], //- cria o arquivo coverage/index.html para visualisar o coverage no browser |
| 38 | + "exclude": ["tests/**"] |
| 39 | + }, |
| 40 | +``` |
0 commit comments