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