Puppeteer: Evaluation failed: ReferenceError: cov_16gqc9ptx4 is not defined
出现问题
在写自动化测试时遇到这么个问题,记录下。
无法使用 evaluate
/ eval
等浏览器执行环境的API。
这个问题整的我怀疑人生了, 看下面最小化代码
这段代码执行完全没问题。
// index.spec.js
test('', async () => {
const inputEl = global.page.$('input')
inputEl.evaluate(node => node.value = '')
});
把代码块移到顶层,报错 Evaluation failed: ReferenceError: cov_16gqc9ptx4 is not defined
, 你说气不气人。
// index.spec.js
async function clearValue() {
const inputEl = global.page.$('input')
inputEl.evaluate(node => node.value = '')
}
test('', async () => {
await clearValue()
});
从代码的角度来看这个是没问题的。
解决
在 jest.config 中配置 collectCoverage
设为 false
即可。
{
"collectCoverage": false
}
解释下这个字段字面意思, 在jest默认配置中这个字段为 false
, 指出是否收集测试时的覆盖率信息。 由于要带上覆盖率搜集语句重新访问所有执行过的文件,这可能会让你的测试执行速度被明显减慢。
为 true
为 false