Playwright 1.65 újdonságok

Becsült olvasási idő:
2 perc

Elég gyorsan érkeznek az új kiadások, és nem tudom, hogy sírjak, vagy nevessek.

A Playwright v1.65 hivatalosan is megjelent, és számos izgalmas fejlesztést, valamint tesztfuttatási változtatást hozott. Az alábbiakban a legfontosabb újdonságok összegzése látható, működő példákkal:

1. Tesztfuttatás Bun alatt (Run tests with Bun)

A Playwright tesztfuttatója mostantól hivatalosan is futtatható a Bun futtatókörnyezetben. Mivel a Bun saját maga végzi a TypeScript fájlok transzpilálását, a Playwright nem használja a Babelt vagy annak gyorsítótárát.

Használatához a --bun flaget kell megadni:

Bash

bunx --bun playwright test

2. Új hibajelentő opciók (Reports with only failures)

Kényelmesebbé vált a CI/CD pipeline-ok logolása: az új failures reporter csak a hibás teszteket és a sikeres újrapróbálkozásokat nyomtatja ki, progress bar nélkül. Emellett az HTML, JSON és JUnit riportoknál is beállítható, hogy csak a problémás teszteket tartsák meg.

TypeScript

// playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [
    ['failures'],
    ['html', { onlyFailures: true }],
  ],
});

3. Exkluzív tesztzár (-exclusive- test lock)

Bevezetésre került egy új, beépített tesztzár mechanizmus, amellyel egy adott teszt kizárólagosan futtatható (azaz miközben ez fut, más tesztek nem futnak párhuzamosan vele, de a többi teszt egymás között igen).

TypeScript

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

test('adatbázis migráció és szerver újraindítás', { lock: '-exclusive-' }, async () => {
  // Amíg ez fut, semmilyen más teszt nem fut a workerben
});

4. Egyszerűbb teszt annotációk

A test.skip(), test.fixme(), test.fail() és test.slow() metódusok mostantól közvetlenül is fogadnak egyetlen sztringként megadott leírást, ami rögzítésre kerül a teszt annotációi között:

TypeScript

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

test('új funkció tesztelése', async ({ page }) => {
  test.skip('Még nem implementált backend végpont');
});

5. Fontosabb Breaking Changes (Törő változtatások)

  • TypeScript class fields: A TypeScript osztálymezők mostantól szigorúan a tsconfig.json szerinti useDefineForClassFields viselkedést követik (hasonlóan a tsc-hez).
  • Inert elemek szigorúbb kezelése: Az akciók (pl. click(), fill()) automatikusan timeoutolnak, ha az elem inert attribútummal rendelkezik vagy egy inaktív réteg mögött rekedt.
Szerző:
Kategória:
, ,
Bejegyzés dátuma:

Hozzászólások

Vélemény, hozzászólás?