我有一个Chrome扩展程序,我正在为工作而构建,以测试一个我无法控制的外部网站。该网站有很多内部错误,导致我的测试套件失败,尽管测试通过, puppet 师工作流程工作。(我确实为那个网站的实际用户感到遗憾)。我试着定义缺失的引用,我已经添加了各种侦听器来处理网站的错误,但到目前为止还没有运气,虽然测试完成,但它仍然无法通过套件。
我将不得不省略任何识别信息,但希望这将是一个很好的开始,我会添加,因为我可以与请求。
● Test suite failed to run
ReferenceError: module is not defined
● Test suite failed to run
ReferenceError: getItemKeyValue is not defined
● Test suite failed to run
TypeError: Cannot read properties of undefined (reading 'template')
● Test suite failed to run
ReferenceError: global is not defined
Test Suites: 1 failed, 1 total
Tests: 4 passed, 4 total
字符串
我已经尝试忽略所有的错误,这是固有的网站上,我必须测试我的扩展,使测试套件可以通过。所有的结果,从这些是运行测试,并通过他们,然后失败的套件,或未能运行网站,因此一切都失败,无论如何,因为我定义了缺失的变量。
await page.evaluateOnNewDocument(() => {
window.addEventListener('error', event => {
console.warn('Error intercepted:', event.message);
event.preventDefault(); // Prevent the default handler
});
});
//This error captures and gets past page errors, but doesn't work on the reference errors
page.on('pageerror', error => {
if (error instanceof ReferenceError) {
// Handle ReferenceError differently
console.log('ref error', error)
} else {
// Handle or log other types of errors
console.error('Page error:', error.message);
}
});
// Stops all progress, but technically can run the suite :(
await page.evaluateOnNewDocument(() => {
window.getItemKeyValue = window.getItemKeyValue || function () { }; // Stubbing the function
window.global = window; // Defining 'global'
});
型
1条答案
按热度按时间6pp0gazn1#
很可能你需要设置
exitOnPageError=false
。由于默认值为true
,测试可能会通过,但在此之后,页面会创建一个错误,运行者会退出测试套件。来自docs https://github.com/argos-ci/jest-puppeteer?tab=readme-ov-file#configuring-jest-puppeteer:
字符串