Interfaccia a riga di comando
Comandi
vitest
Avvia Vitest nella directory corrente. Passerà automaticamente in modalità watch nell'ambiente di sviluppo e in modalità run in CI.
È possibile specificare un argomento aggiuntivo come filtro per i file di test da eseguire. Ad esempio:
vitest foobar
Eseguirà solo i file di test il cui percorso contiene foobar
. Questo filtro controlla solo l'inclusione e non supporta espressioni regolari o pattern glob (a meno che il terminale non li elabori prima che Vitest riceva il filtro).
vitest run
Esegue una singola esecuzione senza la modalità di osservazione (watch mode).
vitest watch
Esegue tutte le suite di test e rimane in ascolto delle modifiche, rieseguendo i test quando queste si verificano. Equivale all'esecuzione di vitest
senza argomenti. In CI, verrà eseguito vitest run
.
vitest dev
Alias per vitest watch
.
vitest related
Esegue solo i test relativi a un elenco di file sorgente. Funziona con import statici (ad es. import('./index.ts')
o import index from './index.ts')
), ma non con quelli dinamici (ad es. import(filepath)
). Tutti i file devono essere relativi alla cartella radice.
Utile se utilizzato con lint-staged
o con la configurazione CI.
vitest related /src/index.ts /src/hello-world.js
TIP
Vitest utilizza la modalità watch di default. Se si utilizzano strumenti come lint-staged
, è necessario passare anche l'opzione --run
, in modo che il comando possa terminare correttamente.
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
Esegue solo i test di benchmark, che confrontano le prestazioni.
Opzioni
Opzioni | |
---|---|
-v, --version | Mostra il numero di versione |
-r, --root <path> | Definisce la directory radice del progetto |
-c, --config <path> | Percorso del file di configurazione |
-u, --update | Aggiorna gli snapshot |
-w, --watch | Abilita la modalità di watch intelligente e immediata |
-t, --testNamePattern <pattern> | Esegue i test con nomi completi corrispondenti al pattern specificato |
--dir <path> | Directory di base per la scansione dei file di test |
--ui | Abilita l'interfaccia grafica (UI) |
--open | Apre automaticamente l'interfaccia utente se abilitata (predefinito: true ) |
--api [api] | Serve l'API. Opzioni disponibili: --api.port <port> , --api.host [host] e --api.strictPort |
--threads | Abilita i thread (predefinito: true ) |
--single-thread | Esegue i test all'interno di un singolo thread. Richiede --threads (predefinito: false ) |
--experimental-vm-threads | Esegue i test in un pool di worker utilizzando l'isolamento VM (predefinito: false ) |
--experimental-vm-worker-memory-limit | Imposta la memoria massima consentita per un worker. Quando viene raggiunta, verrà creato un nuovo worker |
--silent | Disattiva l'output della console dai test |
--isolate | Isola l'ambiente per ogni file di test (predefinito: true ) |
--reporter <name> | Seleziona il reporter: default , verbose , dot , junit , json o un percorso a un reporter personalizzato |
--outputFile <filename/-s> | Scrive i risultati dei test in un file quando sono specificate anche le opzioni --reporter=json o --reporter=junit . Tramite la dot notation di cac è possibile specificare output individuali per più reporter |
--coverage | Abilita il report di coverage (copertura) |
--run | Disabilita la modalità di osservazione (watch mode) |
--mode | Sovrascrive la modalità Vite (predefinito: test ) |
--mode <name> | Sovrascrive la modalità Vite (predefinito: test ) |
--globals | Inietta le API globalmente |
--dom | Simula l'API del browser con happy-dom |
--browser [options] | Esegue i test nel browser (predefinito: false ) |
--environment <env> | Ambiente di esecuzione (predefinito: node ) |
--passWithNoTests | Considera il test superato quando non vengono trovati test |
--logHeapUsage | Mostra l'utilizzo della memoria heap per ogni test |
--allowOnly | Consente test e suite contrassegnati come only (predefinito: false in CI, true altrimenti) |
--dangerouslyIgnoreUnhandledErrors | Ignora gli errori non gestiti che si verificano |
--changed [since] | Esegue i test relativi ai file modificati (predefinito: false). Vedi docs |
--shard <shard> | Esegue i test in uno shard specificato |
--sequence | Definisce l'ordine di esecuzione dei test. Utilizzare la dot notation di cac per specificare le opzioni (ad esempio, utilizzare --sequence.shuffle per eseguire i test in ordine casuale o --sequence.shuffle --sequence.seed SEED_ID per eseguire un ordine specifico) |
--no-color | Rimuove i colori dall'output della console |
--inspect | Abilita l'inspector di Node.js |
--inspect-brk | Abilita l'inspector di Node.js con interruzione |
--bail <number> | Interrompe l'esecuzione del test quando il numero indicato di test è fallito |
--retry <times> | Riprova il test per un numero specifico di volte se fallisce |
-h, --help | Mostra le opzioni CLI disponibili |
TIP
Vitest supporta sia il camel case che il kebab case per gli argomenti della CLI. Ad esempio, --passWithNoTests
e --pass-with-no-tests
funzioneranno entrambi (--no-color
e --inspect-brk
sono le eccezioni).
Vitest supporta anche diversi modi per specificare il valore: --reporter dot
e --reporter=dot
sono entrambi validi.
Se l'opzione supporta un array di valori, è necessario passare l'opzione più volte:
vitest --reporter=dot --reporter=default
Le opzioni booleane possono essere negate con il prefisso no-
. Specificare il valore come false
funziona allo stesso modo:
vitest --no-api
vitest --api=false
changed
Tipo:
boolean | string
Predefinito: false
Esegue i test solo sui file modificati. Se non viene fornito alcun valore, verranno eseguiti i test sulle modifiche non committate (incluse quelle staged e unstaged).
Per eseguire i test sulle modifiche apportate nell'ultimo commit, è possibile utilizzare
--changed HEAD~1
. È anche possibile passare l'hash del commit o il nome del branch.Se abbinato all'opzione di configurazione
forceRerunTriggers
, eseguirà l'intera suite di test se viene trovata una corrispondenza.
shard
Tipo:
string
Predefinito: disabilitato
Partiziona la suite di test da eseguire in un formato di
<index>
/<count>
, dove:count
è un intero positivo, che rappresenta il numero di parti in cui dividere i test.index
è un intero positivo, che rappresenta l'indice della parte da eseguire.
Questo comando divide tutti i test in
count
parti uguali ed esegue solo quelli che si trovano nella parteindex
. Ad esempio, per dividere la suite di test in tre parti, utilizzare:shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
Questa opzione non è compatibile con --watch
abilitato (abilitato in modalità dev per impostazione predefinita).