Skip to content
Vitest 1
Main Navigation GuidaAPIConfigurazioneAvanzato
1.6.1
0.34.6

Italiano

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

Italiano

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

Aspetto

Sidebar Navigation

Guida

Perché Vitest

Introduzione

Funzionalità

Workspace

Interfaccia a riga di comando

Filtro dei test

Reporter

Coverage

Snapshot

Mocking

Test dei Tipi

Interfaccia Utente di Vitest

Modalità Browser

Test nel codice sorgente

Contesto del Test

Ambienti di Test

Estensione dei Matchers

Integrazione con gli IDE

Debugging

Confronti con altri Test Runner

Guida alla Migrazione

Errori Frequenti

Ottimizzare le Prestazioni

API

Riferimento API Test

Funzioni Mock

Vi

expect

expectTypeOf

assert

assertType

Configurazione

Gestione del file di configurazione di Vitest

Configurazione di Vitest

In questa pagina

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:

bash
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.js') o import index from './index.js')), 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.

bash
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.

js
// .lintstagedrc.js
export default {
  '*.{js,ts}': 'vitest related --run',
};

vitest bench ​

Esegue solo i test di benchmark, che confrontano le prestazioni.

Opzioni ​

Opzioni
-r, --root <path>Percorso radice
-c, --config <path>Percorso del file di configurazione
-u, --updateAggiorna snapshot
-w, --watchAbilita la modalità di osservazione
-t, --testNamePattern <pattern>Esegui i test con nomi completi che corrispondono al pattern regexp specificato
--dir <path>Directory base per la scansione dei file di test
--uiAbilita l'interfaccia utente
--openApri l'interfaccia utente automaticamente (predefinito: !process.env.CI)
--api.port [port]Specifica la porta del server. Note se la porta è già in uso, Vite proverà automaticamente la successiva porta disponibile quindi questa potrebbe non essere la porta effettiva su cui il server finisce per ascoltare. Se true verrà impostato a 51204
--api.host [host]Specifica su quali indirizzi IP il server dovrebbe ascoltare. Imposta questo su 0.0.0.0 o true per ascoltare su tutti gli indirizzi, inclusi gli indirizzi LAN e pubblici
--api.strictPortImposta su true per uscire se la porta è già in uso, invece di provare automaticamente la successiva porta disponibile
--silentDisattiva l'output della console dai test
--hideSkippedTestsNascondi i log dei test saltati
--reporter <name>Specifica i reporter
--outputFile <filename/-s>Scrivi i risultati dei test in un file quando è specificato anche il reporter supporter, usa la notazione a punti di cac per output individuali di più reporter (esempio: --outputFile.tap=./tap.txt)
--coverage.allSe includere tutti i file, inclusi quelli non testati, nel report
--coverage.provider <name>Seleziona lo strumento per la raccolta della coverage, i valori disponibili sono: "v8", "istanbul" e "custom"
--coverage.enabledAbilita la raccolta della coverage. Può essere sovrascritta usando l'opzione CLI --coverage (predefinito: false)
--coverage.include <pattern>File inclusi nella coverage come pattern glob. Può essere specificato più volte quando si utilizzano pattern multipli (predefinito: **)
--coverage.exclude <pattern>File da escludere dalla coverage. Può essere specificato più volte quando si utilizzano estensioni multiple (predefinito: Consulta coverage.exclude)
--coverage.extension <extension>Estensioni da includere nella coverage. Può essere specificato più volte quando si utilizzano estensioni multiple (predefinito: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"])
--coverage.cleanPulisci i risultati della coverage prima di eseguire i test (predefinito: true)
--coverage.cleanOnRerunPulisci il report di coverage al nuovo lancio dell'osservazione (predefinito: true)
--coverage.reportsDirectory <path>Directory in cui scrivere il report di coverage (predefinito: ./coverage)
--coverage.reporter <name>Coverage reporters da usare. Visita coverage.reporter per maggiori informazioni (predefinito: ["text", "html", "clover", "json"])
--coverage.reportOnFailureGenera il report di coverage anche quando i test falliscono (predefinito: false)
--coverage.allowExternalRaccogli la coverage dei file al di fuori della root del progetto (predefinito: false)
--coverage.skipFullNon mostrare i file con il 100% di statement, branch e function coverage (predefinito: false)
--coverage.thresholds.100Scorciatoia per impostare tutte le soglie di coverage a 100 (predefinito: false)
--coverage.thresholds.perFileControlla le soglie per file. Vedi --coverage.thresholds.lines, --coverage.thresholds.functions, --coverage.thresholds.branches e --coverage.thresholds.statements per le soglie effettive (predefinito: false)
--coverage.thresholds.autoUpdateAggiorna i valori di soglia: "lines", "functions", "branches" e "statements" al file di configurazione quando la coverage corrente è al di sopra delle soglie configurate (predefinito: false)
--coverage.thresholds.lines <number>Soglia per le righe. Visita istanbuljs per maggiori informazioni. Questa opzione non è disponibile per i custom provider
--coverage.thresholds.functions <number>Soglia per le funzioni. Visita istanbuljs per maggiori informazioni. Questa opzione non è disponibile per i custom provider
--coverage.thresholds.branches <number>Soglia per i branch. Visita istanbuljs per maggiori informazioni. Questa opzione non è disponibile per i custom provider
--coverage.thresholds.statements <number>Soglia per gli statement. Visita istanbuljs per maggiori informazioni. Questa opzione non è disponibile per i custom provider
--coverage.ignoreClassMethods <name>Array di nomi di metodi di classe da ignorare per la coverage. Visita istanbuljs per maggiori informazioni. Questa opzione è disponibile solo per i provider istanbul (predefinito: [])
--coverage.processingConcurrency <number>Limite di concorrenza utilizzato durante l'elaborazione dei risultati della coverage. (predefinito: min tra 20 e il numero di CPU)
--coverage.customProviderModule <path>Specifica il nome del modulo o il percorso per il modulo custom coverage provider. Visita Custom Coverage Provider per maggiori informazioni. Questa opzione è disponibile solo per i custom provider
--coverage.watermarks.statements <watermarks>Watermark alti e bassi per gli statements nel formato di <alto>,<basso>
--coverage.watermarks.lines <watermarks>Watermark alti e bassi per le linee nel formato di <alto>,<basso>
--coverage.watermarks.branches <watermarks>Watermark alti e bassi per i branch nel formato di <alto>,<basso>
--coverage.watermarks.functions <watermarks>Watermark alti e bassi per le funzioni nel formato di <alto>,<basso>
--mode <name>Sovrascrive la modalità Vite (predefinito: test o benchmark)
--workspace <path>Percorso di un file di configurazione workspace
--isolateEsegui ogni file di test in isolamento. Per disabilitare l'isolamento, usa --no-isolate (predefinito: true)
--globalsInietta le API globalmente
--domSimula l'API del browser con happy-dom
--browser.enabledEsegui i test nel browser. Equivalente a --browser.enabled (predefinito: false)
--browser.name <name>Esegui tutti i test in un browser specifico. Alcuni browser sono disponibili solo per provider specifici (vedi --browser.provider). Visita browser.name per maggiori informazioni
--browser.headlessEsegui il browser in modalità headless (cioè senza aprire la GUI (Graphical User Interface)). Se stai eseguendo Vitest in CI, sarà abilitata di default (predefinito: process.env.CI)
--browser.api.port [port]Specifica la porta del server. Note se la porta è già in uso, Vite proverà automaticamente la successiva porta disponibile quindi questa potrebbe non essere la porta effettiva su cui il server finisce per ascoltare. Se true verrà impostato a 63315
--browser.api.host [host]Specifica su quali indirizzi IP il server dovrebbe ascoltare. Imposta questo su 0.0.0.0 o true per ascoltare su tutti gli indirizzi, inclusi gli indirizzi LAN e pubblici
--browser.api.strictPortImposta su true per uscire se la porta è già in uso, invece di provare automaticamente la successiva porta disponibile
--browser.provider <name>Provider utilizzato per eseguire test nel browser. Alcuni browser sono disponibili solo per provider specifici. Può essere "webdriverio", "playwright" oppure il percorso di un custom provider. Visita browser.provider per maggiori informazioni (predefinito: "webdriverio")
--browser.providerOptions <options>Opzioni che vengono passate a un browser provider. Visita browser.providerOptions per maggiori informazioni
--browser.slowHijackESMConsenti a Vitest di usare la sua risoluzione dei moduli nel browser per abilitare API come vi.mock e vi.spyOn. Visita browser.slowHijackESM per maggiori informazioni (predefinito: false)
--browser.isolateEsegui ogni file di test del browser in isolamento. Per disabilitare l'isolamento, usa --browser.isolate=false (predefinito: true)
--browser.fileParallelismIndica se tutti i file di test devono essere eseguiti in parallelo. Usa --browser.file-parallelism=false per disabilitare (predefinito: uguale a --file-parallelism)
--pool <pool>Specifica il pool, se non si esegue nel browser (predefinito: threads)
--poolOptions.threads.isolateIsola i test nel pool di threads (predefinito: true)
--poolOptions.threads.singleThreadEsegui i test all'interno di un singolo thread (predefinito: false)
--poolOptions.threads.maxThreads <workers>Numero massimo di threads per eseguire i test
--poolOptions.threads.minThreads <workers>Numero minimo di threads per eseguire i test
--poolOptions.threads.useAtomicsUsa Atomics per sincronizzare i thread. Questo può migliorare le prestazioni in alcuni casi, ma potrebbe causare segfault in versioni precedenti di Node (predefinito: false)
--poolOptions.vmThreads.isolateIsola i test nel pool di threads (predefinito: true)
--poolOptions.vmThreads.singleThreadEsegui i test all'interno di un singolo thread (predefinito: false)
--poolOptions.vmThreads.maxThreads <workers>Numero massimo di threads per eseguire i test
--poolOptions.vmThreads.minThreads <workers>Numero minimo di threads per eseguire i test
--poolOptions.vmThreads.useAtomicsUsa Atomics per sincronizzare i thread. Questo può migliorare le prestazioni in alcuni casi, ma potrebbe causare segfault in versioni precedenti di Node (predefinito: false)
--poolOptions.vmThreads.memoryLimit <limit>Limite di memoria per il pool di VM threads. Se vedi perdite di memoria, prova a modificare questo valore.
--poolOptions.forks.isolateIsola i test nel pool di forks (predefinito: true)
--poolOptions.forks.singleForkEsegui i test all'interno di un singolo child_process (predefinito: false)
--poolOptions.forks.maxForks <workers>Numero massimo di processi per eseguire i test
--poolOptions.forks.minForks <workers>Numero minimo di processi per eseguire i test
--poolOptions.vmForks.isolateIsola i test nel pool di forks (predefinito: true)
--poolOptions.vmForks.singleForkEsegui i test all'interno di un singolo child_process (predefinito: false)
--poolOptions.vmForks.maxForks <workers>Numero massimo di processi per eseguire i test
--poolOptions.vmForks.minForks <workers>Numero minimo di processi per eseguire i test
--poolOptions.vmForks.memoryLimit <limit>Limite di memoria per il pool di VM forks. Se vedi perdite di memoria, prova a modificare questo valore.
--fileParallelismIndica se tutti i file di test devono essere eseguiti in parallelo. Usa --no-file-parallelism per disabilitare (predefinito: true)
--maxWorkers <workers>Numero massimo di workers per eseguire i test
--minWorkers <workers>Numero minimo di workers per eseguire i test
--environment <name>Specifica l'ambiente di esecuzione, se non si esegue nel browser (predefinito: node)
--passWithNoTestsSupera il test quando non vengono trovati test
--logHeapUsageMostra la dimensione dell'heap per ogni test quando si esegue in node
--allowOnlyConsenti i test e le suite contrassegnati come only (predefinito: !process.env.CI)
--dangerouslyIgnoreUnhandledErrorsIgnora qualsiasi errore non gestito che si verifica
--shard <shards>Test suite shard da eseguire in un formato di <index>/<count>
--changed [since]Esegui i test che sono influenzati dai file modificati (predefinito: false)
--sequence.shuffle.filesEsegui i file in ordine casuale. I test a lunga esecuzione non inizieranno prima se abiliti questa opzione. (predefinito: false)
--sequence.shuffle.testsEsegui i test in un ordine casuale (predefinito: false)
--sequence.concurrentFai eseguire i test in parallelo (predefinito: false)
--sequence.seed <seed>Imposta il seme di randomizzazione. Questa opzione non avrà effetto se --sequence.shuffle è falso. Visita la pagina "Random Seed" per maggiori informazioni
--sequence.hooks <order>Modifica l'ordine in cui vengono eseguiti gli hook. I valori accettati sono: "stack", "list" e "parallel". Visita sequence.hooks per maggiori informazioni (predefinito: "parallel")
--sequence.setupFiles <order>Modifica l'ordine in cui vengono eseguiti i file di setup. I valori accettati sono: "list" e "parallel". Se impostato su "list", eseguirà i file di setup nell'ordine in cui sono definiti. Se impostato su "parallel", eseguirà i file di setup in parallelo (predefinito: "parallel")
--inspect [[host:]port]Abilita l'inspector di Node.js (predefinito: 127.0.0.1:9229)
--inspectBrk [[host:]port]Abilita l'inspector di Node.js e interrompi prima che il test inizi
--testTimeout <timeout>Timeout predefinito di un test in millisecondi (predefinito: 5000)
--hookTimeout <timeout>Timeout predefinito di un hook in millisecondi (predefinito: 10000)
--bail <number>Interrompi l'esecuzione dei test quando il numero indicato di test è fallito (predefinito: 0)
--retry <times>Riprova il test un numero specifico di volte se fallisce (predefinito: 0)
--diff <path>Percorso di un file di configurazione diff che verrà utilizzato per generare l'interfaccia diff
--exclude <glob>Glob aggiuntivi di file da escludere dai test
--expandSnapshotDiffMostra la diff completa quando lo snapshot fallisce
--disableConsoleInterceptDisabilita l'intercettazione automatica dei log della console (predefinito: false)
--typecheck.enabledAbilita il typechecking insieme ai test (predefinito: false)
--typecheck.onlyEsegui solo i test di typecheck. Questo abilita automaticamente il typecheck (predefinito: false)
--typecheck.checker <name>Specifica il typechecker da utilizzare. I valori disponibili sono: "tcs" e "vue-tsc" e un percorso a un eseguibile (predefinito: "tsc")
--typecheck.allowJsConsenti che i file JavaScript siano sottoposti a typecheck. Per impostazione predefinita, prende il valore da tsconfig.json
--typecheck.ignoreSourceErrorsIgnora gli errori di tipo dai file sorgente
--typecheck.tsconfig <path>Percorso di un file tsconfig personalizzato
--project <name>Il nome del progetto da eseguire se stai utilizzando la funzionalità workspace di Vitest. Questo può essere ripetuto per più progetti: --project=1 --project=2. Puoi anche filtrare i progetti usando caratteri jolly come --project=packages*
--slowTestThreshold <threshold>Soglia in millisecondi per cui un test è considerato lento (predefinito: 300)
--teardownTimeout <timeout>Timeout predefinito di una funzione teardown in millisecondi (predefinito: 10000)
--maxConcurrency <number>Numero massimo di test concorrenti in una suite (predefinito: 5)
--runDisabilita la modalità di osservazione
--segfaultRetry <times>Riprova la test suite se si arresta in modo anomalo a causa di un segfault (predefinito: true)
--no-colorRimuovi i colori dall'output della console
--clearScreenPulisci lo schermo del terminale quando si rieseguono i test in modalità di osservazione (predefinito: true)
--standaloneAvvia Vitest senza eseguire test. I filtri dei file verranno ignorati, i test verranno eseguiti solo alla modifica (predefinito: false)

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 all'ultimo commit, è possibile utilizzare --changed HEAD~1. È inoltre possibile passare l'hash del commit (ad esempio --changed 09a9920) o il nome del branch (ad esempio --changed origin/develop).

    Se utilizzato con la code coverage, il report conterrà solo i file correlati alle modifiche.

    Se abbinato all'opzione di configurazione forceRerunTriggers, verrà eseguita l'intera suite di test se almeno uno dei file elencati nell'elenco forceRerunTriggers viene modificato. Per impostazione predefinita, le modifiche al file di configurazione Vitest e a package.json eseguiranno sempre di nuovo l'intera suite.

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 parte index. Ad esempio, per dividere la suite di test in tre parti, utilizzare:

    sh
    vitest 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).

Pager
Pagina precedenteWorkspace
Pagina successivaFiltro dei test

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/cli

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors