单元测试覆盖率

发表于:2018-3-23 11:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:web前端开发杂记    来源:个人博客

  测试的时候,我们常常关心,是否所有代码都测试到了。 这个指标就叫做"代码覆盖率"(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),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号