我有用于通过jest和puppeteer进行自动测试的项目Excellent.js设置,该设置成功运行了所有测试,可以在Travis CI上看到。
但是在进行了大量配置调整后,我无法使它报告正确的覆盖范围。无论执行什么测试,覆盖范围都不会完全反映出来。
该库仅包含一个JavaScript文件excellent.js,并且按照覆盖范围的说明设置了jest.config.js:
module.exports = {
collectCoverage: true,
collectCoverageFrom: [
'src/excellent.js'
],
testURL: 'http://localhost/',
setupFiles: [
'./src/excellent.js'
]
};
Run Code Online (Sandbox Code Playgroud)
这是所有测试,如果您先进行npm install,然后再进行,都将通过npm test。
那我想念什么呢?为什么我无法正确报告承保范围?
问题
大多数测试都使用Puppeteer,并且在Puppeteer提供的浏览器中执行代码时,该代码执行未反映在Jest代码覆盖率报告中。
解
这些测试都不需要Puppeteer,因此我将它们重构为Jest测试。现在,代码覆盖率是准确的,并且当前为:
excellent.js | 63.47 | 48.7 | 57.78 | 62.96
附加信息
现在可以为Puppeteer页面生成代码覆盖率报告,并且有一个库可以帮助在Instanbul中查看它们,但是这些代码覆盖率报告是独立于Jest生成的。
为了在Puppeteer页面中进行测试并使这些测试的覆盖范围反映在Jest生成的报告中,需要将Puppeteer页面覆盖率报告与Jest覆盖率报告合并。
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |