Performansı İyileştirme
Vitest, varsayılan olarak her test dosyasını havuz tabanlı, izole bir ortamda çalıştırır:
threads
havuzu, her test dosyasını ayrı birWorker
içinde çalıştırır.forks
havuzu, her test dosyasını ayrı bir forklanmış alt işlem içinde çalıştırır.vmThreads
havuzu, her test dosyasını ayrı bir VM context içinde çalıştırır, ancak paralellik için işçi thread'lerini kullanır.
Bu durum, test sürelerini önemli ölçüde uzatabilir. Yan etkilere bağımlı olmayan ve durumlarını düzgün bir şekilde temizleyen projeler için bu durum gereksiz olabilir (ki bu genellikle node
ortamına sahip projeler için geçerlidir). Bu gibi durumlarda, izolasyonu devre dışı bırakmak testlerinizin hızını artıracaktır. Bunu yapmak için, CLI'ya --no-isolate
bayrağını ekleyebilir veya yapılandırmadaki test.isolate
özelliğini false
olarak ayarlayabilirsiniz. poolMatchGlobs
kullanarak aynı anda birden fazla havuz kullanıyorsanız, kullandığınız belirli havuzlar için de izolasyonu devre dışı bırakabilirsiniz.
vitest --no-isolate
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// İzolasyonu yalnızca belirli havuzlar için de devre dışı bırakabilirsiniz
poolOptions: {
forks: {
isolate: false,
},
},
},
});
TIP
vmThreads
havuzunu kullanıyorsanız, izolasyonu devre dışı bırakamazsınız. Testlerinizin performansını artırmak için threads
havuzunu kullanmayı tercih edin.
Bazı projelerde, başlangıç süresini kısaltmak için paralelliği devre dışı bırakmak da faydalı olabilir. Bunu yapmak için, CLI'ya --no-file-parallelism
bayrağını ekleyin veya yapılandırmadaki test.fileParallelism
özelliğini false
olarak ayarlayın.
vitest --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});