Skip to content
Vitest 3
Main Navigation Útmutató & APIKonfigurációBöngésző módHaladó API
3.2.0
2.1.9
1.6.1
0.34.6

magyar

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština

magyar

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština

Megjelenés

Sidebar Navigation

Bevezetés

Miért Vitest

Első lépések

Jellemzők

Vitest konfigurálása

API

Teszt API Referencia

Mock Függvények

Vi

expect

expectTypeOf

assert

assertType

Útmutató

Parancssori felület

Teszt szűrés

Tesztprojektek

Jelentéskészítők (Reporters)

Kódlefedettség

Snapshot

Mockolás

Párhuzamos végrehajtás

Típusok Tesztelése

Vitest UI

Forráskódba ágyazott tesztelés

Tesztkörnyezet

Teszt annotációk

Tesztkörnyezet

Matcherek kiterjesztése

IDE Integrációk

Hibakeresés

Gyakori hibák

Migrációs útmutató

Migrálás a Vitest 3.0-ra

Migrálás Jesstről

Teljesítmény

Teszt teljesítmény profilozása

Teljesítmény javítása

Böngésző üzemmód

Haladó API

Összehasonlítás más tesztfuttatókkal

Ezen az oldalon

Összehasonlítás más tesztfuttatókkal ​

Jest ​

A Jest uralta a tesztelési keretrendszerek piacát azáltal, hogy beépített támogatást nyújtott a legtöbb JavaScript projekthez, kellemesen használható API-t (it és expect), és a teszteléshez szükséges összes funkciót, amelyre a legtöbb beállításnak szüksége van (pillanatképek, mockok, lefedettség). Köszönetet mondunk a Jest csapatának és közösségének, hogy egy élvezetes tesztelési API-t hoztak létre, és számos tesztelési szokást terjesztettek, amelyek ma már a webes ökoszisztéma szabványává váltak.

A Jest használható Vite környezetben is. @sodatea létrehozta a vite-jest eszközt, amelynek célja az első osztályú Vite integráció biztosítása a Jest számára. A Jestben lévő utolsó akadályok elhárultak, így ez egy érvényes opció az egységtesztekhez.

Azonban egy olyan világban, ahol a Vite támogatást nyújt a leggyakoribb webes eszközökhöz (TypeScript, JSX, legnépszerűbb UI keretrendszerek), a Jest felesleges komplexitást jelent. Ha az alkalmazásod Vite-tal működik, két különböző pipeline konfigurálása és karbantartása nem indokolt. A Vitesttel egyetlen pipeline-ként definiálhatod a fejlesztési, buildelési és tesztelési környezetek konfigurációját, ugyanazokat a plugineket és ugyanazt a vite.config.js fájlt megosztva.

Még ha a könyvtárad nem is használja a Vite-ot (például ha esbuilddel vagy Rolluppal készült), a Vitest érdekes opció, mivel gyorsabb futást biztosít az egységtesztekhez, és a Vite azonnali Hot Module Reload (HMR) alapértelmezett figyelő módjának köszönhetően jelentős javulást jelent a fejlesztői élményben. A Vitest kompatibilitást kínál a Jest API és ökoszisztéma könyvtárainak nagy részével, így a legtöbb projektben a Jest kiváltására alkalmas.

Cypress ​

A Cypress egy böngésző alapú tesztfuttató és a Vitest kiegészítő eszköze. Ha Cypress-t szeretnél használni, javasoljuk, hogy a Vitestet használd az alkalmazásod összes felhasználói felület nélküli logikájához, és a Cypress-t az összes böngésző alapú logikához.

A Cypress egy végpontok közötti tesztelési eszközként ismert, de az új komponens tesztfuttatója nagyszerűen támogatja a Vite komponensek tesztelését, és ideális választás minden olyan dolog tesztelésére, ami böngészőben renderelődik.

A böngésző alapú futtatók, mint a Cypress, WebdriverIO és Web Test Runner, olyan problémákat fognak elkapni, amelyeket a Vitest nem tud, mert valódi böngészőt és valódi böngésző API-kat használnak.

A Cypress tesztelési megközelítése arra összpontosít, hogy az elemek láthatók, hozzáférhetők és interaktívak legyenek. A Cypress kifejezetten UI fejlesztésre és tesztelésre készült, és a fejlesztői élménye a vizuális komponensek tesztelésére összpontosít. A komponensedet a tesztjelentés mellett renderelve látod. Amint a teszt befejeződött, a komponens interaktív marad, és a böngésző fejlesztői eszközeivel hibakeresést végezhetsz az esetleges hibákon.

Ezzel szemben a Vitest a lehető legjobb fejlesztői élmény biztosítására összpontosít a villámgyors, felhasználói felület nélküli teszteléshez. A Node-alapú futtatók, mint a Vitest, különböző részlegesen implementált böngésző környezeteket támogatnak, mint például a jsdom, amelyek elegendő funkcionalitást implementálnak ahhoz, hogy gyorsan egységtesztelhess bármilyen kódot, amely böngésző API-kra hivatkozik. A kompromisszum az, hogy ezeknek a böngésző környezeteknek korlátai vannak abban, hogy mit tudnak implementálni. Például a jsdom számos funkciót nem implementál, mint például a window.navigation vagy egy elrendezési motor (offsetTop, stb.).

Végül, a Web Test Runnerrel ellentétben, a Cypress tesztfuttatója inkább egy IDE-re hasonlít, mint egy tesztfuttatóra, mert a valódi renderelt komponenst is látod a böngészőben, a teszteredményekkel és naplókkal együtt.

A Cypress integrálta a Vite-ot a termékeibe is: újraépítették az alkalmazásuk UI-ját a Vitesse segítségével, és a Vite-ot használják a projektfejlesztés támogatására.

Úgy gondoljuk, hogy a Cypress nem jó opció a felhasználói felület nélküli kód egységtesztelésére, de a Cypress (E2E és komponens teszteléshez) és a Vitest (egységtesztekhez) használata lefedné az alkalmazásod tesztelési igényeit.

WebdriverIO ​

A WebdriverIO a Cypress-hez hasonlóan egy böngésző alapú alternatív tesztfuttató és a Vitest kiegészítő eszköze. Használható végpontok közötti tesztelési eszközként, valamint webkomponensek tesztelésére is. Még a Vitest komponenseit is használja a háttérben, pl. mockinghoz és stubbinghoz a komponens teszteken belül.

A WebdriverIO ugyanazokkal az előnyökkel bír, mint a Cypress, lehetővé téve a logika tesztelését valós böngészőben. Azonban tényleges web szabványokat használ az automatizáláshoz, ami megoldja a Cypressben történő tesztelés során felmerülő kompromisszumokat és korlátokat. Ezenkívül lehetővé teszi a tesztek futtatását mobilon is, így még több környezetben tesztelheted az alkalmazásodat.

Web Test Runner ​

Az @web/test-runner fej nélküli böngészőben futtatja a teszteket, ugyanazt a végrehajtási környezetet biztosítva, mint a webalkalmazásod, anélkül, hogy böngésző API-kat vagy a DOM-ot kellene mockolni. Ez lehetővé teszi a hibakeresést is egy valódi böngészőben a fejlesztői eszközök segítségével, bár nincs UI a teszt lépésenkénti futtatásához, mint a Cypress tesztekben.

Az @web/test-runner használatához Vite projekttel használd az @remcovaes/web-test-runner-vite-plugin plugint. Az @web/test-runner nem tartalmaz ellenőrző vagy mocking könyvtárakat, így neked kell hozzáadnod őket.

uvu ​

Az uvu egy tesztfuttató Node.js-hez és a böngészőhöz. Egyetlen szálon futtatja a teszteket, így a tesztek nincsenek izolálva, és befolyásolhatják egymást a fájlok között. A Vitest azonban munkaszálakat használ a tesztek izolálására és párhuzamos futtatására.

A kód transzformálásához az uvu a require és loader hookokat használja. A Vitest a Vite rendszert használja, így a fájlok a Vite plugin rendszerének teljes erejével transzformálódnak. Egy olyan világban, ahol a Vite támogatást nyújt a leggyakoribb webes eszközökhöz (TypeScript, JSX, legnépszerűbb UI keretrendszerek), az uvu feleslegesen növeli a komplexitást. Ha az alkalmazásod Vite-tal működik, két különböző pipeline konfigurálása és karbantartása nem indokolt. A Vitesttel egyetlen pipeline-ként definiálhatod a fejlesztési, buildelési és tesztelési környezetek konfigurációját, ugyanazokat a plugineket és ugyanazt a konfigurációt megosztva.

Az uvu nem biztosít okos figyelő módot a megváltozott tesztek újrafuttatásához, míg a Vitest elképesztő fejlesztői élményt biztosít a Vite azonnali Hot Module Reload (HMR) alapértelmezett figyelő módjának köszönhetően.

Az uvu gyors opció az egyszerű tesztek futtatására, de a Vitest gyorsabb és megbízhatóbb lehet bonyolultabb tesztek és projektek esetén.

Pager
Előző oldalHaladó API

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/comparisons

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team