玩笑+木偶戏无法获得测试报道

时间:2018-08-01 03:39:20

标签: jestjs puppeteer

我有一个项目Excellent.js设置为使用jestpuppeteer进行自动测试,该项目成功运行了can be seen on Travis CI的所有测试。

但是在进行大量配置调整后,我无法使其报告正确的覆盖范围。无论执行什么测试,覆盖范围都根本无法反映出来。

该库仅包含一个JavaScript文件excellent.js,而我的jest.config.js则按照说明进行设置:

module.exports = {
    collectCoverage: true,
    collectCoverageFrom: [
        'src/excellent.js'
    ],
    testURL: 'http://localhost/',
    setupFiles: [
        './src/excellent.js'
    ]
};

这里是all the tests,如果您先进行npm install,然后再进行npm test,所有这些都将通过。

那我想念什么?为什么我无法正确报告承保范围?

1 个答案:

答案 0 :(得分:4)

问题

大多数测试都使用Puppeteer,并且在Puppeteer提供的浏览器中执行代码时,Jest代码覆盖率报告中未反映该代码执行。

解决方案

所有测试都不需要Puppeteer,因此我将它们重构为Jest测试。现在,代码覆盖范围是准确的,并且当前为:

excellent.js | 63.47 | 48.7 | 57.78 | 62.96

我创建了一个pull request with these changes

其他信息

现在可以generate code coverage reports for Puppeteer pages,并且有一个库可以帮助view them in Instanbul,但是这些代码覆盖率报告是独立于Jest生成的。

要在Puppeteer页面中进行测试并使这些测试的覆盖范围反映在Jest生成的报告中,需要将Puppeteer页面覆盖率报告与Jest覆盖率报告合并。