Ottimizzare le Prestazioni
Per impostazione predefinita, Vitest esegue ogni file di test in un ambiente isolato basato sul pool:
- Il pool
threads
esegue ogni file di test in unWorker
separato. - Il pool
forks
esegue ogni file di test in un processo figlio (fork) separato. - Il pool
vmThreads
esegue ogni file di test in un contesto VM separato, ma utilizza i worker per il parallelismo.
Questo può allungare significativamente i tempi di test, il che potrebbe non essere ideale per progetti che non dipendono da effetti collaterali e che gestiscono correttamente la pulizia del proprio stato (come spesso accade per i progetti con ambiente node
). In questi casi, disabilitare l'isolamento può migliorare le prestazioni dei test. Per farlo, puoi specificare il flag --no-isolate
nella CLI oppure impostare la proprietà test.isolate
nel file di configurazione su false
. Se utilizzi più pool contemporaneamente tramite poolMatchGlobs
, puoi anche disabilitare l'isolamento per un pool specifico.
vitest --no-isolate
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// puoi anche disabilitare l'isolamento solamente per pool specifici
poolOptions: {
forks: {
isolate: false,
},
},
},
});
TIP
Se utilizzi il pool vmThreads
, non è possibile disabilitare l'isolamento. Si consiglia di utilizzare il pool threads
per migliorare le prestazioni dei test.
In alcuni progetti, potrebbe essere consigliabile disabilitare il parallelismo dei file per ridurre il tempo di inizializzazione. Per farlo, specifica il flag --no-file-parallelism
nella CLI oppure imposta la proprietà test.fileParallelism
nel file di configurazione su false
.
vitest --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});