Paralellik
Dosya Paralelliği
Varsayılan olarak, Vitest test dosyalarını paralel olarak çalıştırır. Belirtilen pool
seçeneğine bağlı olarak, Vitest test dosyalarını paralelleştirmek için farklı mekanizmalar kullanır:
forks
(varsayılan) vevmForks
havuzları, testleri farklı çocuk süreçlerde çalıştırır.threads
vevmThreads
havuzları, testleri farklı iş parçacıklarında çalıştırır.
Hem "çocuk süreçler" hem de "iş parçacıkları" genel olarak "çalışanlar" olarak adlandırılır. Çalışan sayısını minWorkers
ve maxWorkers
seçenekleriyle veya daha ayrıntılı olarak poolOptions
yapılandırması aracılığıyla yapılandırabilirsiniz.
Çok sayıda testiniz varsa, bunları paralel çalıştırmak genellikle daha hızlıdır. Ancak bu durum, projenize, ortamınıza ve izolasyon durumuna da bağlıdır. Dosya paralelleştirmeyi devre dışı bırakmak için fileParallelism
seçeneğini false
olarak ayarlayabilirsiniz. Olası performans iyileştirmeleri hakkında daha fazla bilgi edinmek için Performans Rehberi bölümünü okuyun.
Test Paralelliği
Test dosyalarının aksine, Vitest bir dosya içindeki testleri sırasıyla çalıştırır. Bu, tek bir test dosyasındaki testlerin tanımlandıkları sırayla yürütüleceği anlamına gelir.
Vitest, testleri eşzamanlı çalıştırmak için concurrent
seçeneğini destekler. Bu seçenek ayarlanırsa, Vitest aynı dosyadaki eşzamanlı testleri gruplandırır (eşzamanlı çalışan test sayısı maxConcurrency
seçeneğine bağlıdır) ve bunları Promise.all
ile çalıştırır.
Vitest herhangi bir akıllı analiz yapmaz ve bu testleri çalıştırmak için ek çalışanlar oluşturmaz. Bu, testlerinizin performansının yalnızca eşzamansız işlemlere yoğun bir şekilde bağımlıysanız artacağı anlamına gelir. Örneğin, concurrent
seçeneği belirtilmiş olsa bile aşağıdaki testler yine de birbiri ardına çalışacaktır. Bunun nedeni senkron olmalarıdır:
test.concurrent('the first test', () => {
expect(1).toBe(1);
});
test.concurrent('the second test', () => {
expect(2).toBe(2);
});
Tüm testleri eşzamanlı olarak çalıştırmak isterseniz, sequence.concurrent
seçeneğini true
olarak ayarlayabilirsiniz.