Rozhraní příkazového řádku
Příkazy
vitest
Spustí Vitest v aktuálním adresáři. Automaticky se přepne do režimu sledování ve vývojovém prostředí a do režimu spuštění v CI.
Můžete předat další argument jako filtr pro testovací soubory, které se mají spustit. Například:
vitest foobar
Spustí pouze testovací soubory, jejichž cesta obsahuje řetězec foobar
. Tento filtr kontroluje pouze přítomnost řetězce a nepodporuje regulární výrazy ani globální vzory (pokud je váš terminál nezpracuje předtím, než je Vitest obdrží).
vitest run
Provede jednorázové spuštění bez režimu sledování.
vitest watch
Spustí všechny testovací sady a sleduje změny. Při změně souborů testy automaticky znovu spustí. Stejné jako spuštění vitest
bez argumentů. V CI se chová jako vitest run
.
vitest dev
Alias pro vitest watch
.
vitest related
Spustí pouze testy, které pokrývají zadané zdrojové soubory. Funguje se statickými importy (např. import('./index.js')
nebo import index from './index.js')
), ale ne s dynamickými (např. import(filepath)
). Všechny soubory musí být relativní ke kořenovému adresáři projektu.
Užitečné pro spuštění s lint-staged
nebo v CI.
vitest related /src/index.ts /src/hello-world.js
TIP
Nezapomeňte, že Vitest ve výchozím nastavení běží s povoleným režimem sledování. Pokud používáte nástroje jako lint-staged
, měli byste také předat volbu --run
, aby příkaz mohl úspěšně dokončit.
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
Spustí pouze benchmark testy, které porovnávají výkon.
Možnosti
Možnosti | |
---|---|
-r, --root <path> | Kořenová cesta |
-c, --config <path> | Cesta ke konfiguračnímu souboru |
-u, --update | Aktualizace snapshotů |
-w, --watch | Zapnout režim sledování změn (watch mode) |
-t, --testNamePattern <pattern> | Spustí testy, jejichž celé názvy odpovídají zadanému regulárnímu výrazu |
--dir <path> | Základní adresář pro vyhledávání testovacích souborů |
--ui | Zapnout UI |
--open | Automaticky otevřít UI (výchozí: !process.env.CI ) |
--api.port [port] | Určete port serveru. Pokud je port již používán, Vite automaticky zkusí další dostupný port, takže se nemusí jednat o skutečný port, na kterém server nakonec poslouchá. Pokud je true, bude nastaveno na 51204 |
--api.host [host] | Určuje, které IP adresy má server poslouchat. Nastavte na 0.0.0.0 nebo true pro poslech na všech adresách, včetně sítí LAN a veřejných adres |
--api.strictPort | Nastaveno na true pro ukončení, pokud je port již používán, místo automatického zkoušení dalšího dostupného portu |
--silent | Potlačit výstup testů do konzole |
--hideSkippedTests | Skrýt logy pro přeskočené testy |
--reporter <name> | Určete reportéry |
--outputFile <filename/-s> | Zapíše výsledky testů do souboru, pokud je také určen podporovaný reporter. Pro jednotlivé výstupy více reportérů použijte tečkovou notaci cac (příklad: --outputFile.tap=./tap.txt) |
--coverage.all | Zda zahrnout všechny soubory, včetně netestovaných, do reportu pokrytí |
--coverage.provider <name> | Vyberte nástroj pro sběr pokrytí, dostupné hodnoty jsou: "v8", "istanbul" a "custom" |
--coverage.enabled | Povolí sběr pokrytí. Může být přepsáno pomocí CLI možností --coverage (výchozí: false ) |
--coverage.include <pattern> | Soubory zahrnuté do pokrytí jako glob vzory. Může být zadáno vícekrát při použití více vzorů (výchozí: ** ) |
--coverage.exclude <pattern> | Soubory, které mají být vyloučeny z pokrytí. Může být zadáno vícekrát při použití více rozšíření (výchozí: Viz coverage.exclude ) |
--coverage.extension <extension> | Přípona souborů, které mají být zahrnuty do pokrytí. Může být zadáno vícekrát při použití více rozšíření (výchozí: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"] ) |
--coverage.clean | Smazat výsledky pokrytí před spuštěním testů (výchozí: true) |
--coverage.cleanOnRerun | Smazat report pokrytí při opětovném spuštění ve watch režimu (výchozí: true) |
--coverage.reportsDirectory <path> | Adresář pro zápis reportu pokrytí (výchozí: ./coverage) |
--coverage.reporter <name> | Reportéry pokrytí, které se mají použít. Další informace naleznete na coverage.reporter (výchozí: ["text", "html", "clover", "json"] ) |
--coverage.reportOnFailure | Vygenerovat report pokrytí i v případě, že testy selžou (výchozí: false ) |
--coverage.allowExternal | Shromažďovat pokrytí souborů mimo kořenový adresář projektu (výchozí: false ) |
--coverage.skipFull | Nezobrazovat soubory se 100% pokrytím příkazů, větví a funkcí (výchozí: false ) |
--coverage.thresholds.100 | Zkratka pro nastavení všech prahových hodnot pokrytí na 100 (výchozí: false ) |
--coverage.thresholds.perFile | Kontrolovat prahové hodnoty pro každý soubor. Viz --coverage.thresholds.lines , --coverage.thresholds.functions , --coverage.thresholds.branches a --coverage.thresholds.statements pro skutečné prahové hodnoty (výchozí: false ) |
--coverage.thresholds.autoUpdate | Aktualizovat hodnoty prahových hodnot: "lines", "functions", "branches" a "statements" do konfiguračního souboru, když je aktuální pokrytí nad konfigurovanými prahovými hodnotami (výchozí: false ) |
--coverage.thresholds.lines <number> | Prahová hodnota pro řádky. Více informací naleznete na istanbuljs. Tato možnost není k dispozici pro vlastní poskytovatele |
--coverage.thresholds.functions <number> | Prahová hodnota pro funkce. Více informací naleznete na istanbuljs. Tato možnost není k dispozici pro vlastní poskytovatele |
--coverage.thresholds.branches <number> | Prahová hodnota pro větve. Více informací naleznete na istanbuljs. Tato možnost není k dispozici pro vlastní poskytovatele |
--coverage.thresholds.statements <number> | Prahová hodnota pro příkazy. Více informací naleznete na istanbuljs. Tato možnost není k dispozici pro vlastní poskytovatele |
--coverage.ignoreClassMethods <name> | Pole názvů metod tříd, které se mají ignorovat pro pokrytí. Více informací naleznete na istanbuljs. Tato možnost je k dispozici pouze pro poskytovatele istanbul (výchozí: [] ) |
--coverage.processingConcurrency <number> | Limit souběžnosti používaný při zpracování výsledků pokrytí. (výchozí min mezi 20 a počtem CPU) |
--coverage.customProviderModule <path> | Určuje název modulu nebocestu pro vlastní modul poskytovatele pokrytí. Více informací naleznete na Vlastní poskytovatel pokrytí. Tato možnost je k dispozici pouze pro vlastní poskytovatele |
--coverage.watermarks.statements <watermarks> | Horní a dolní hranice pro příkazy ve formátu <high>,<low> |
--coverage.watermarks.lines <watermarks> | Horní a dolní hranice pro řádky ve formátu <high>,<low> |
--coverage.watermarks.branches <watermarks> | Horní a dolní hranice pro větve ve formátu <high>,<low> |
--coverage.watermarks.functions <watermarks> | Horní a dolní hranice pro funkce ve formátu <high>,<low> |
--mode <name> | Přepsat režim Vite (výchozí: test nebo benchmark ) |
--workspace <path> | Cesta ke konfiguračnímu souboru workspace |
--isolate | Spustit každý testovací soubor izolovaně. Pro zakázání izolace použijte --no-isolate (výchozí: true ) |
--globals | Injektovat API globálně |
--dom | Mockovat prohlížečové API pomocí happy-dom |
--browser.enabled | Spustit testy v prohlížeči. Ekvivalentní k --browser.enabled (výchozí: false ) |
--browser.name <name> | Spustit všechny testy ve specifickém prohlížeči. Některé prohlížeče jsou k dispozici pouze pro specifické poskytovatele (viz --browser.provider ). Viz browser.name pro více informací |
--browser.headless | Spustit prohlížeč v headless režimu (tj. bez otevírání grafického uživatelského rozhraní (GUI)). Pokud spouštíte Vitest v CI, bude ve výchozím nastavení povoleno (výchozí: process.env.CI ) |
--browser.api.port [port] | Určete port serveru. Pokud je port již používán, Vite automaticky zkusí další dostupný port, takže se nemusí jednat o skutečný port, na kterém server nakonec poslouchá. Pokud je true, bude nastaveno na 63315 |
--browser.api.host [host] | Určuje, které IP adresy má server poslouchat. Nastavte na 0.0.0.0 nebo true pro poslech na všech adresách, včetně sítí LAN a veřejných adres |
--browser.api.strictPort | Nastaveno na true pro ukončení, pokud je port již používán, místo automatického zkoušení dalšího dostupného portu |
--browser.provider <name> | Poskytovatel použitý pro spuštění testů prohlížeče. Některé prohlížeče jsou k dispozici pouze pro specifické poskytovatele. Může být "webdriverio", "playwright", nebo cesta k vlastnímu poskytovateli. Visit browser.provider pro více informací (výchozí: "webdriverio" ) |
--browser.providerOptions <options> | Možnosti, které jsou předány poskytovateli prohlížeče. Viz browser.providerOptions pro více informací |
--browser.slowHijackESM | Nechte Vitest použít vlastní řešení modulů v prohlížeči, aby se umožnily rozhraní API jako vi.mock a vi.spyOn. Visit browser.slowHijackESM pro více informací (výchozí: false ) |
--browser.isolate | Spustit každý testovací soubor prohlížeče izolovaně. Chcete-li zakázat izolaci, použijte --browser.isolate=false (výchozí: true ) |
--browser.fileParallelism | Mají se všechny testovací soubory spouštět paralelně. Použijte --browser.file-parallelism=false pro zakázání (výchozí: stejné jako --file-parallelism ) |
--pool <pool> | Určete fond (pool), pokud se neběží v prohlížeči (výchozí: threads ) |
--poolOptions.threads.isolate | Izolovat testy ve fondu vláken (výchozí: true ) |
--poolOptions.threads.singleThread | Spustit testy v jednom vlákně (výchozí: false ) |
--poolOptions.threads.maxThreads <workers> | Maximální počet vláken pro spuštění testů |
--poolOptions.threads.minThreads <workers> | Minimální počet vláken pro spuštění testů |
--poolOptions.threads.useAtomics | Použít Atomics pro synchronizaci vláken. To může zlepšit výkon v některých případech, ale může způsobit segfault ve starších verzích Node (výchozí: false ) |
--poolOptions.vmThreads.isolate | Izolovat testy ve fondu vláken (výchozí: true ) |
--poolOptions.vmThreads.singleThread | Spustit testy v jednom vlákně (výchozí: false ) |
--poolOptions.vmThreads.maxThreads <workers> | Maximální počet vláken pro spuštění testů |
--poolOptions.vmThreads.minThreads <workers> | Minimální počet vláken pro spuštění testů |
--poolOptions.vmThreads.useAtomics | Použít Atomics pro synchronizaci vláken. To může zlepšit výkon v některých případech, ale může způsobit segfault ve starších verzích Node (výchozí: false ) |
--poolOptions.vmThreads.memoryLimit <limit> | Limit paměti pro fond VM vláken. Pokud vidíte úniky paměti, zkuste tuto hodnotu vyladit. |
--poolOptions.forks.isolate | Izolovat testy ve fondu forks (výchozí: true ) |
--poolOptions.forks.singleFork | Spustit testy v jednom child_process (výchozí: false ) |
--poolOptions.forks.maxForks <workers> | Maximální počet procesů pro spuštění testů |
--poolOptions.forks.minForks <workers> | Minimální počet procesů pro spuštění testů |
--poolOptions.vmForks.isolate | Izolovat testy ve fondu forks (výchozí: true ) |
--poolOptions.vmForks.singleFork | Spustit testy v jednom child_process (výchozí: false ) |
--poolOptions.vmForks.maxForks <workers> | Maximální počet procesů pro spuštění testů |
--poolOptions.vmForks.minForks <workers> | Minimální počet procesů pro spuštění testů |
--poolOptions.vmForks.memoryLimit <limit> | Limit paměti pro fond VM forks. Pokud vidíte úniky paměti, zkuste tuto hodnotu vyladit. |
--fileParallelism | Mají se všechny testovací soubory spouštět paralelně. Použijte --no-file-parallelism pro zakázání (výchozí: true ) |
--maxWorkers <workers> | Maximální počet workerů pro spuštění testů |
--minWorkers <workers> | Minimální počet workerů pro spuštění testů |
--environment <name> | Určete prostředí runneru, pokud se neběží v prohlížeči (výchozí: node ) |
--passWithNoTests | Projít, i když nebyly nalezeny žádné testy |
--logHeapUsage | Zobrazit velikost haldy pro každý test při spuštění v Node |
--allowOnly | Povolit testy a sady, které jsou označeny jako only (výchozí: !process.env.CI ) |
--dangerouslyIgnoreUnhandledErrors | Ignorovat jakékoli nezachycené chyby, které se vyskytnou |
--shard <shards> | Test suite shard to execute in a format of <index>/<count> |
--changed [since] | Spustit testy, které jsou ovlivněny změněnými soubory (výchozí: false ) |
--sequence.shuffle.files | Spustit soubory v náhodném pořadí. Dlouhotrvající testy nezačnou dříve, pokud povolíte tuto možnost. (výchozí: false ) |
--sequence.shuffle.tests | Spustit testy v náhodném pořadí (výchozí: false ) |
--sequence.concurrent | Zajistit paralelní spouštění testů (výchozí: false ) |
--sequence.seed <seed> | Nastavit seed pro randomizaci. Tato možnost nebude mít žádný efekt, pokud je --sequence.shuffle nepravdivá. Viz "Random Seed" page pro více informací |
--sequence.hooks <order> | Změní pořadí, ve kterém jsou spouštěny hooky. Akceptované hodnoty jsou: "stack", "list" a "parallel". Viz sequence.hooks pro více informací (výchozí: "parallel" ) |
--sequence.setupFiles <order> | Změní pořadí, ve kterém jsou spouštěny setup soubory. Akceptované hodnoty jsou: "list" a "parallel". Pokud je nastaveno na "list", setup soubory budou spuštěny v pořadí, v jakém jsou definovány. Pokud je nastaveno na "parallel", setup soubory budou spuštěny paralelně (výchozí: "parallel" ) |
--inspect [[host:]port] | Zapnout Node.js inspektor (výchozí: 127.0.0.1:9229 ) |
--inspectBrk [[host:]port] | Zapnout Node.js inspektor a zastavit se před spuštěním testu |
--testTimeout <timeout> | Výchozí timeout testu v milisekundách (výchozí: 5000 ) |
--hookTimeout <timeout> | Výchozí timeout hooku v milisekundách (výchozí: 10000 ) |
--bail <number> | Zastavit provádění testů, když daný počet testů selhal (výchozí: 0 ) |
--retry <times> | Opakovat test specifický počet krát, pokud selže (výchozí: 0 ) |
--diff <path> | Cesta ke konfiguračnímu souboru diff, který bude použit ke generování diff rozhraní |
--exclude <glob> | Další glob vzory souborů, které mají být vyloučeny z testu |
--expandSnapshotDiff | Zobrazit celý diff při selhání snapshotu |
--disableConsoleIntercept | Zakázat automatické zachytávání console loggingu (výchozí: false ) |
--typecheck.enabled | Povolit typechecking spolu s testy (výchozí: false ) |
--typecheck.only | Spustit pouze typecheck testy. Automaticky povolí typecheck (výchozí: false ) |
--typecheck.checker <name> | Určete typechecker, který se má použít. Dostupné hodnoty jsou: "tcs" a "vue-tsc" a cesta ke spustitelnému souboru (výchozí: "tsc" ) |
--typecheck.allowJs | Povolit typechecking JavaScript souborů. Ve výchozím nastavení přebírá hodnotu z tsconfig.json |
--typecheck.ignoreSourceErrors | Ignorovat chyby typu ze zdrojových souborů |
--typecheck.tsconfig <path> | Cesta k vlastnímu tsconfig souboru |
--project <name> | Název projektu, který se má spustit, pokud používáte funkci Vitest workspace. To lze opakovat pro více projektů: --project=1 --project=2 . Projekty můžete také filtrovat pomocí zástupných znaků, jako je --project=packages* |
--slowTestThreshold <threshold> | Prahová hodnota v milisekundách, kdy je test považován za pomalý (výchozí: 300 ) |
--teardownTimeout <timeout> | Výchozí timeout funkce teardown v milisekundách (výchozí: 10000 ) |
--maxConcurrency <number> | Maximální počet souběžných testů v sadě (výchozí: 5 ) |
--run | Zakázat režim sledování změn (watch mode) |
--segfaultRetry <times> | Zkusit testovací sadu znovu, pokud spadne kvůli segfault (výchozí: true ) |
--no-color | Odstraní barvy z výstupu konzole |
--clearScreen | Vymaže obrazovku terminálu při opakovaném spouštění testů v režimu sledování změn (výchozí: true ) |
--standalone | Spustit Vitest bez spouštění testů. Filtry souborů budou ignorovány, testy budou spouštěny pouze při změně (výchozí: false ) |
TIP
Vitest podporuje camel case i kebab case pro argumenty příkazového řádku. Například --passWithNoTests
a --pass-with-no-tests
budou fungovat (--no-color
a --inspect-brk
jsou výjimky).
Vitest také podporuje různé způsoby zadávání hodnot: --reporter dot
a --reporter=dot
jsou oba platné.
Pokud možnost podporuje pole hodnot, musíte možnost předat vícekrát:
vitest --reporter=dot --reporter=default
Boolean možnosti lze negovat předponou no-
. Zadání hodnoty jako false
také funguje:
vitest --no-api
vitest --api=false
changed
Typ:
boolean | string
Výchozí: false
Spustí testy pouze pro změněné soubory. Pokud není zadána žádná hodnota, spustí testy proti neodeslaným změnám (včetně připravených a nepřipravených).
Chcete-li spustit testy na změnách provedených v posledním commitu, můžete použít
--changed HEAD~1
. Můžete také předat hash commitu (např.--changed 09a9920
) nebo název větve (např.--changed origin/develop
).Při použití s pokrytím kódu bude sestava obsahovat pouze soubory, které souvisejí se změnami.
Pokud je spárována s možností konfigurace
forceRerunTriggers
, spustí se celá sada testů, pokud se změní alespoň jeden ze souborů uvedených v seznamuforceRerunTriggers
. Ve výchozím nastavení změny v konfiguračním souboru Vitest a vpackage.json
vždy znovu spustí celou sadu.
shard
Typ:
string
Výchozí: zakázáno
Rozdělí testovací sady do shardů pro spuštění ve formátu
<index>
/<count>
, kde:count
je kladné celé číslo, udávající počet shardů.index
je kladné celé číslo, udávající index shardu (začíná od 1).
Tento příkaz rozdělí všechny testy do
count
stejných částí a spustí pouze ty, které spadají do shardu s indexemindex
. Pro rozdělení sady testů na tři části použijte například toto:shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
Tuto možnost nelze použít s povoleným --watch
(ve výchozím nastavení povoleno v dev).