gpt4 book ai didi

jestjs - 无法使用 jest + puppeteer 获得测试覆盖率

转载 作者:行者123 更新时间:2023-12-02 08:59:25 45 4
gpt4 key购买 nike

我有项目Excellent.js设置自动测试 jestpuppeteer ,它成功运行了所有测试,其中 can be seen on Travis CI .

但是经过大量配置调整后,我无法使其报告正确的覆盖范围。无论执行什么测试,覆盖率都不会反射(reflect)出来。

该库仅包含一个 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,那么所有这些都会通过。

那我错过了什么?为什么我无法正确报告覆盖范围?

最佳答案

问题

大多数测试都使用 Puppeteer,当代码在 Puppeteer 提供的浏览器中执行时,该代码执行不会反射(reflect)在 Jest 代码覆盖率报告中。

解决方案

所有测试都不需要 Puppeteer,因此我将它们重构为 Jest 测试。代码覆盖率现已准确,目前如下:

excellent.js | 63.47 | 48.7 | 48.7 57.78 | 62.96

我创建了一个pull request with these changes .

其他信息

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

要在 Puppeteer 页面中进行测试并将这些测试的覆盖率反射(reflect)在 Jest 生成的报告中,需要将 Puppeteer 页面覆盖率报告与 Jest 覆盖率报告合并。

关于jestjs - 无法使用 jest + puppeteer 获得测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51625029/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com