测试的时候,我们常常关心,是否所有代码都测试到了。 这个指标就叫做"代码覆盖率"(code coverage)。
它有四个测量维度:
行覆盖率(line coverage):是否每一行都执行了?
函数覆盖率(function coverage):是否每个函数都调用了?
分支覆盖率(branch coverage):是否每个if代码块都执行了?
语句覆盖率(statement coverage):是否每个语句都执行了?
常用的前端js测试覆盖率框架: istanbul
我们代码使用ES6来编写的,使用babel来转码,所以选择了另一个专门针对es6的babel转码工具 isparta
安装:
$ npm install --save-dev isparta
使用:
babel-node node_modules/isparta/bin/isparta cover --report text --report html node_modules/mocha/bin/_mocha -- --reporter dot examples: |
package.json -> script中添加:
"test": "NODE_ENV=test mocha --recursive --compilers js:babel-core/register --require ./test/setup.js", "test-cov": "babel-node ./node_modules/isparta/bin/isparta cover --report text --report html ./node_modules/mocha/bin/_mocha -- --reporter dot --require ./test/setup.js" |
单独执行test: npm run test 执行测试和覆盖率: npm run test-cov
生成报告
isparta使用istanbul来生成报告,所以参数也是istabul的参数: --report htm/json/lcov/cobertura/clover/teamcity/text-lcov/json-summary/text-summary
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。