Kategória: Playwright

  • Playwright 1.65 újdonságok

    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.