typescript Playwright -配置中的超时为2分钟,但我想在一个测试用例中等待5分钟,而不更改配置等待时间

k2fxgqgv  于 2023-04-07  发布在  TypeScript
关注(0)|答案(2)|浏览(354)

我在PlaywrightTestConfig文件中有一个2分钟的超时作为全局设置。在一个测试用例中,我想等待10分钟以进行文件验证。所有测试的全局设置定义如下:

const config: PlaywrightTestConfig = {
  // Timeout for each Playwright action in milliseconds. Defaults to 0 (no timeout)
  timeout: 120000
  ...
}

我尝试了这些方法:
1.单击({ timeout:});

  1. return();
  2. setTimeout(600000);
  3. setDefaultTimeout(600000);
  4. setDefaultNavigationTimeout(600000);
    在所有这些情况下,2分钟后测试超时,而不是覆盖10分钟(600000)。
    提高全局设置可能会起作用,但它会使整个测试套件运行得更慢,这并不理想。
    是否可以使一个步骤的超时时间大于全局超时时间?
nuypyhwy

nuypyhwy1#

听起来你的测试套件中有不同类型的测试。一种可能的方法是根据持续时间将它们划分为项目。然后为每个项目指定不同的timeout,而不是使用一个不适合所有用例的全局值。

{
  "use": [
    {
      "browserName": "chromium",
      "timeout": 120000
    },
    {
      "browserName": "chromium",
      "timeout": 600000,
      "testMatch": '/long-tasks/**/*.spec.js',
    }
  ]
}
dffbzjpn

dffbzjpn2#

特定动作自定义超时+测试超时:

页面对象内的特定操作:

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)

参考:https://playwright.dev/docs/test-timeouts

相关问题