A teljesítmény javítása
Alapértelmezés szerint a Vitest minden tesztfájlt egy elkülönített környezetben futtat a pool beállításnak megfelelően:
- A
threadspool minden tesztfájlt egy különWorkerszálon futtat. - A
forkspool minden tesztfájlt egy külön forkolt gyermekfolyamatban futtat. - A
vmThreadspool minden tesztfájlt egy külön VM kontextusban futtat, de a párhuzamosság érdekében worker szálakat használ.
Ez jelentősen megnövelheti a tesztelési időt, ami nem feltétlenül előnyös olyan projektek számára, amelyek nem használnak mellékhatásokat, és megfelelően kezelik az állapotukat (ami gyakran igaz a node környezetű projektekre). Ebben az esetben az elkülönítés letiltása javíthatja a tesztek sebességét. Ehhez megadhatja a --no-isolate kapcsolót a CLI-ben, vagy a konfigurációs fájlban a test.isolate tulajdonságot false értékre állíthatja. Ha a poolMatchGlobs használatával egyszerre több poolt használ, akkor egy adott poolra is letilthatja az elkülönítést.
vitest --no-isolateimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// you can also disable isolation only for specific pools
poolOptions: {
forks: {
isolate: false,
},
},
},
});TIP
Ha a vmThreads poolt használja, nem tilthatja le az elkülönítést. A tesztek teljesítményének javításához használja inkább a threads poolt.
Bizonyos projektek esetében a gyorsabb indítás érdekében érdemes lehet letiltani a párhuzamosítást. Ehhez adja meg a --no-file-parallelism kapcsolót a CLI-ben, vagy a konfigurációs fájlban a test.fileParallelism tulajdonságot állítsa false értékre.
vitest --no-file-parallelismimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});