typescript - Hur ändrar jag global förväntad timeout i playwright


Jag skriver i Playwright med Cucumber och TypeScript.

Jag behöver ändra standardväntetiden för förväntan.

Jag märkte att varje matcher, som toBeVisible(), har sina egna timeouter, men läste också i manualen att expect kan konfigureras på detta sätt (från manualen)

const slowExpect = expect.configure({ timeout: 10000 });
await slowExpect(locator).toHaveText('Submit');

Jag vill dock att ändringen ska vara global. Det finns också ett extend-fält i Expect-typen.

//...
  extend(matchers: any): void;
  configure: (configuration: {
    message?: string,
    timeout?: number,
    soft?: boolean,
  }) => Expect;
//...

Vad är det bästa sättet att uppnå det?

Ska jag exportera slowExpect, eller ska jag använda extend i någon konfigurationsfil och också exportera det?

Svar #1

Ställ bara in den globala förväntade tidsgränsen i konfigurationen och den kommer att gälla för alla påståenden om du inte åsidosätter den i ett specifikt förväntat uttalande.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  expect: {
    timeout: 10 * 1000,
  },
});

Svar #2

Det enklaste sättet att åsidosätta standardtidsgränsen är att uppdatera i hooks.

  1. Öppna 'hooks.ts'
  2. importera 'setDefaultTimeout' från '@cucumber/cucumber'
  3. setDefaultTimeout(60 * 1000);

Referera till den här bilden, hur jag gjorde i mitt skript.