单元测试的代码覆盖率统计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单元测试的代码覆盖率统计
今天广州中软卓越软件测试培训课程简要讲解一下单元测试的代码覆盖率统计。
单元测试的代码覆盖率统计,是衡量测试用例好坏的一个的方法,有的公司直接把代码测试覆盖率作为一个硬性要求。尤其在多人合作的情况下。很有可能在后期维护时候牵一发而动全身的代码修改中起到至关重要的检测。不过代码覆盖率也不是唯一标准,测试用例的好坏主要还是看能不能覆盖尽可能多的情况。
一、打包编译JS代码覆盖率问题
之前代码覆盖率在JS代码不需要编译的情况下。直接可以使用KARMA的karma-coverage这个工具就可以直接统计结果。不过由于我的项目用上了WEBPACK的打包和babel的ES6编译。所以单单使用karma-coverage统计的代码覆盖率统计的是,编译打包后的代码,这个覆盖率直接没有了参考价值。一般打包后代码的覆盖率只有可怜的10%-20%因为WEBPACK帮你加入了很多它的代码。而测试要做到这些代码的覆盖是完全没有意义的。所以就需要找一个可以查看编译前代码覆盖率的一个方法。
二、单元测试覆盖率
做测试时,想要知代码覆盖道是否所有代码都测试到了。这就是所谓的率。
单元测试覆盖率有四个测量维度:
1、行覆盖率(line coverage):是否每一行都执行
2、函数覆盖率(function coverage):是否每个函数都调用
3、分支覆盖率(branch coverage):是否每个if代码块都执行
4、语句覆盖率(statement coverage):是否每个语句都执行
常用的前端js测试覆盖率框架:istanbul
我们代码使用ES6来编写的,使用babel来转码,所以选择了另一个专门针对es6的babel 转码工具isparta
生成报告
isparta使用istanbul来生成报告