我试图得到一个页面的描述与 puppet 师,我有一个高阶函数,提供该函数的页面对象:
export const checkDescription = async page => {
const metaDescription = await page.$eval(
'meta[name="description"]',
description => description.getAttribute("content")
);
return metaDescription;
};
字符串
然后,我使用Jest运行一个测试。
const testDescription = await withPage(checkDescription)(URL);
expect(typeof testDescription).toBe("string");
型
我有以下错误:
Error: Evaluation failed: ReferenceError: cov_4kq3tptqc is not defined
at __puppeteer_evaluation_script__:2:41
at ExecutionContext.evaluateHandle
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
-- ASYNC --
at ExecutionContext.<anonymous>
at ExecutionContext.evaluate
at ExecutionContext.<anonymous>
at ElementHandle.$eval
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
-- ASYNC --
型
如果我只是将函数粘贴到jest文件中,那么它就可以按预期工作
3条答案
按热度按时间kupeojn61#
如果你需要收集覆盖率,可以通过在浏览器上下文函数(带有
.eval
的行)之前添加/* istanbul ignore next */
来修复,以防止伊斯坦布尔覆盖率注入。r7knjye22#
在puppeteer中,在运行测试时,伊斯坦布尔插入了以下内容:
字符串
已通过将
config.collectCoverage = false;
添加到jest.config
修复9wbgstp73#
在evaluate函数中放置/* 伊斯坦布尔next */有效地解决了这个问题。
不起作用:
字符串
工作时间:
型