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.jsonszerintiuseDefineForClassFieldsviselkedést követik (hasonlóan atsc-hez). - Inert elemek szigorúbb kezelése: Az akciók (pl.
click(),fill()) automatikusan timeoutolnak, ha az eleminertattribútummal rendelkezik vagy egy inaktív réteg mögött rekedt.
Vélemény, hozzászólás?
Hozzászólás küldéséhez be kell jelentkezni.