我在 PlaywrightTestConfig 文件中有一个 2 分钟的超时作为全局设置。在其中一个测试用例中,我想等待 10 分钟以进行文件验证。 所有测试的全局设置定义如下:
const config: PlaywrightTestConfig = {
// Timeout for each Playwright action in milliseconds. Defaults to 0 (no timeout)
timeout: 120000
...
}
我试过这些方法:
在所有这些情况下,测试在 2 分钟后超时而不是覆盖 10 分钟(600000)。
提高全局设置可能会起作用,但它会使整个测试套件运行得更慢,这并不理想。
是否有可能让一个步骤的超时时间超过全局超时时间?
听起来您的套件中有不同类型的测试。根据持续时间将它们分开的一种可能方法是将它们拆分为项目。然后,对于每个项目,您可以指定不同的
timeout
,而不是拥有一个不适合所有用例的全局值。
{
"use": [
{
"browserName": "chromium",
"timeout": 120000
},
{
"browserName": "chromium",
"timeout": 600000,
"testMatch": '/long-tasks/**/*.spec.js',
}
]
}
对特定操作有自定义超时+测试超时:
页面对象内的具体动作:
async performSomeAction() {
//some test steps
await page.click(someLocator)
await page.waitForSelector(locatorWhichAppearAfterClick,{timeout:400000})
//some other steps
}
内部测试:
test('Perform someAction', async () => {
await page.performSomeAction()
},600000)