Performansı İyileştirme
Vitest, varsayılan olarak her test dosyasını havuz tabanlı, izole bir ortamda çalıştırır:
threadshavuzu, her test dosyasını ayrı birWorkeriçinde çalıştırır.forkshavuzu, her test dosyasını ayrı bir forklanmış alt işlem içinde çalıştırır.vmThreadshavuzu, 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-isolateimport { 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-parallelismimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});