Přejít k navigační liště

Zdroják » Webdesign » Vitest 4.0 – nové vizuální testování, lepší debugging a stabilní Browser Mode

Vitest 4.0 – nové vizuální testování, lepší debugging a stabilní Browser Mode

Nová verze Vitest 4.0 posouvá hranice testování webových aplikací. Přináší stabilní běh testů přímo v prohlížeči, podporu vizuálního regresního testování i chytřejší práci s lokátory a typováním. Vývojáři tak získávají robustnější, rychlejší a přehlednější nástroje pro zajištění kvality UI i logiky aplikací.

Testovací framework Vitest vydal svou nejnovější verzi 4.0, která přináší zásadní vylepšení pro vývojáře front-endu i plnohodnotné webové aplikace. Kromě lepší integrace s prohlížeči, nových matcherů a API změn přináší i vizuální regresní testování, které posouvá kvalitu testování UI o úroveň výš.

Co je nového?

Stabilní Browser Mode

Režim pro spouštění testů přímo v prohlížeči už není experimentální. Nainstalujte potřebný balíček, například:

npm install -D @vitest/browser-playwrightCode language: Bash (bash)

Importujte kontext z nového umístění:

import { browser } from 'vitest/browser';Code language: JavaScript (javascript)

Příklad jednoduchého testu:

import { test, expect } from 'vitest';
import { page } from 'vitest/browser';

test('zkontrolujte správný titul stránky', async () => {
  await page.goto('https://example.com');
  const title = await page.title();
  expect(title).toBe('Example Domain');
});Code language: JavaScript (javascript)

Vizuální regresní testování

Využijte Visual Regression Testing pro kontrolu vzhledu komponent:

import { test, expect } from 'vitest';
import { page } from 'vitest/browser';

test('zkontrolujte vzhled hero sekce', async () => {
  await page.goto('/');
  const hero = page.getByTestId('hero');
  await expect(hero).toMatchScreenshot('hero-section');
});Code language: JavaScript (javascript)

Ověřte, zda je prvek viditelný v okně prohlížeče:

await expect(page.getByTestId('hero')).toBeInViewport();Code language: JavaScript (javascript)

Trace soubory a Playwright integrace

Zapněte trace soubory pro ladění kroků:

await page.goto('/');
await page.getByText('Learn More').click({ trace: 'on' });Code language: JavaScript (javascript)

Po dokončení testu otevřete trace v Playwright Trace Viewer.

Chytřejší locatory

Použijte locator pro práci s iframe:

const frame = page.frameLocator('#my-frame');
await expect(frame.getByText('Inside frame')).toBeInViewport();Code language: JavaScript (javascript)

Ověřte délku lokátorů:

const items = page.getByTestId('list-item');
await expect(items).toHaveLength(3);Code language: JavaScript (javascript)

Nové matchery a typování

expect.assert()

Ověřte vlastní logiku:

expect.assert((value: number) => value > 0, 5); 
// ověřuje, že hodnota je větší než 0Code language: JavaScript (javascript)

expect.schemaMatching()

Validujte data proti schématu (Zod, Valibot, ArkType):

import { z } from 'zod';

const UserSchema = z.object({
  name: z.string(),
  age: z.number(),
});

expect({
  name: 'Alice',
  age: 25,
}).schemaMatching(UserSchema);Code language: JavaScript (javascript)

test.extend()

Rozšiřte testovací kontext s typy:

const customTest = test.extend<{ token: string }>({
  token: async ({}, use) => {
    const token = await login();
    await use(token);
  },
});

customTest('využijte token', async ({ token }) => {
  expect(token).toBeDefined();
});Code language: JavaScript (javascript)

Lepší debugování

  • Používejte tlačítko Debug Test ve VS Code pro browser testy.
  • Spusťte Vitest s --inspect a připojte se do DevTools:
vitest --inspectCode language: Bash (bash)

Nové a změněné reportéry

  • Odstraňte basic reporter → použijte default se summary: false.
  • Aktivujte nový tree reporter:
vitest --reporter treeCode language: Bash (bash)

Zobrazí stromovou strukturu testů:

tests/
 ├─ auth.test.ts
 │   ├─ login should succeed
 │   └─ login should fail with wrong password
 └─ dashboard.test.ts
     └─ widgets render correctlyCode language: plaintext (plaintext)
  • Používejte verbose reporter pro výpis testů jeden po druhém i lokálně.

⚠️ Změny, které mohou ovlivnit projekty ⚠️

Vitest 4 je major release, takže některé změny nejsou zpětně kompatibilní.
Před upgradem:

Shrnutí

Vitest 4.0 výrazně zlepšuje testování front-endu. Stabilní browser mode, vizuální testy, lepší typování a nové nástroje pro debugování z něj dělají univerzální framework pro moderní webové aplikace.

Pokud vyvíjíte aplikace s UI nebo komponentovým systémem, přechod na 4.0 je doporučený.

Více informací: vitest.dev/blog/vitest-4

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů

WP2Shell: Kritická hrozba pro samotné jádro WordPressu. Útočníci mohou získat kontrolu nad webem

Zranitelnost ve WordPressu není žádná novinka. Kdo provozuje weby postavené na této platformě, ví, že bezpečnostní záplaty chodí prakticky pořád. O to větší pozornost by měla vzbudit chyba, u které nic z toho neplatí. A přesně takový je případ zranitelnosti, která dostala přezdívku wp2shell. potřeb. Zranitelný kontaktní formulář, děravý e-shopový plugin, opomenutá kontrola oprávnění v nějaké obskurní rozšiřující knihovně – to je denní chleba každého, kdo sleduje bezpečnostní feedy. Zpráva „nová chyba ve WordPress pluginu“ má tak nízkou informační hodnotu, že ji většina lidí přejde bez mrknutí oka.

Mýtus jedné aplikace: proč PWA nenahradí vývoj pro každou platformu

PWA mohou webu přidat ikonu na ploše, fungování bez připojení, notifikace a některé systémové funkce. Nejsou ale cestou k jednomu klientu pro všechny platformy. Vyplatí se tam, kde se lidé k webu vracejí a ocení okamžitý vstup z odkazu. Jakmile aplikace musí spolehlivě běžet na pozadí nebo fungovat stejně na každém zařízení, bývá vhodnější nativní řešení.

Anthropic vydává Claude Opus 5

AI
Komentáře: 0
Anthropic vydal Claude Opus 5 — model, který se má výkonem blížit špičkovému Fable 5 za poloviční cenu a míří hlavně na agentické kódování. Cena zůstává na 5/25 USD za milion tokenů, přibývají API novinky jako mid-conversation tool changes a automatické fallbacky.