gpt4 book ai didi

javascript - 使用 Jest 和 Puppeteer 的并行支持

转载 作者:行者123 更新时间:2023-11-29 23:23:17 27 4
gpt4 key购买 nike

我使用 puppeteer 来实现 UI 自动化,同时使用 Jest 作为测试运行器。我能够按顺序运行测试,但在并行运行测试时遇到问题。我的页面启动

beforeEach(async () => {
browser = await puppeteer.launch({
headless: false,
//slowMo: 80,
args: [`--window-size=${width},${height}`]
});
page = await browser.newPage();
await page.setViewport({width, height});
});

// and my tests are
test.concurrent("description", async () => {
await page.goto('xxxx.com');
//test code goes here
}, timeout)
test.concurrent("description ", async () => {
//test code goes here
}, timeout)

我遇到了以下错误,

TypeError: Cannot read property 'goto' of undefined
(node:9552) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'addExpectationResult' of undefined
(node:9552) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
(node:9552) [DEP0018] DeprecationWarning: Unhandled promise rejections are depre cated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
npm ERR! Test failed. See above for more details.

如能提供这方面的帮助,我们将不胜感激。问候,周杰伦

最佳答案

您正面临此问题,因为 page 变量在您使用箭头函数时仅作用于 beforeEach block 。此 block 不会将其定义的变量传递给测试或描述 block 。我通过为我的测试设置一个全局变量来解决这个问题,并且我已经在测试设置中使用 global.PAGE = await browser.newPage() 添加了页面对象。所以在它运行测试本身之前。

要检查是否是这种情况,您可以简单地在 test.concurrent() block 中尝试 console.log(page);

查看官方 jest 文档。他们已经有了一个工作设置,其中包含了 Jest 和伪装。

>> Using jest with puppeteer

希望这对您有所帮助。干杯。

关于javascript - 使用 Jest 和 Puppeteer 的并行支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49934994/

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