在超时完成之前断言失败

Assertion is failing before the timeout is complete

这些线路似乎在 3 分钟之前就失败了,我已经设置好了。

await expect(this.uploadModal).toBeHidden({ timeout: 180000 });

await expect(this.pdfSuccessfullyRendered.nth(0)).toBeVisible({ timeout: 180000 });

我必须为这些特定元素设置异常大的超时,因为它处理将文件上传到应用程序, 我尝试将配置中的预期超时更改为 180000 以获得更全局的方法,

 globalSetup: require.resolve('./global-setup'),
  expect: {timeout:180000},
  use: {
    baseURL: process.env.URL, 
    headless: true
  },

以及在每个挂钩之前将测试超时更改为 180000,但它仍然在 30 秒左右失败。

test.beforeEach(async ({ page }) => {
       test.setTimeout(180000);
    });
Error: expect(received).toBeHidden()
    Call log:
      - expect.toBeHidden with timeout 180000ms
      - waiting for selector "//app-upload-document"
      -   selector resolved to <app-upload-document _nghost-vih-c387="" class="ng-star-inserted">…</app-upload-document>
      -   unexpected value "false"
      -   selector resolved to <app-upload-document _nghost-vih-c387="" class="ng-star-inserted">…</app-upload-document>
      -   unexpected value "false"

我不确定错误是什么,因为在我等待它隐藏之前与该特定元素进行了交互,所以我知道它存在于页面上,一旦文档完全上传,它就会消失,之后页面自动导航,我开始等待文档开始加载

await expect(this.pdfSuccessfullyRendered.nth(0)).toBeVisible({ timeout: 180000 });

我可以在控制台中看到异常超时,但测试没有等待 3 分钟才失败,我错过了什么?

您需要 return return 从 jest.setTimeout 编辑的值才能执行任何操作:

test.beforeEach(async ({ page }) => {
  return test.setTimeout(180000);
});