Ottimizzare le Prestazioni
Per impostazione predefinita, Vitest esegue ogni file di test in un ambiente isolato basato sul pool:
- Il pool
threadsesegue ogni file di test in unWorkerseparato. - Il pool
forksesegue ogni file di test in un processo figlio (fork) separato. - Il pool
vmThreadsesegue 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-isolateimport { 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-parallelismimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});