Leistungsverbesserung
Standardmäßig führt Vitest jede Testdatei in einer isolierten Umgebung aus, basierend auf dem konfigurierten Pool:
- Der
threads-Pool führt jede Testdatei in einem separatenWorkeraus. - Der
forks-Pool führt jede Testdatei in einem separaten, abgespaltenen Kindprozess aus. - Der
vmThreads-Pool führt jede Testdatei in einem separaten VM-Kontext aus, verwendet jedoch Worker für die Parallelität.
Dies kann die Testlaufzeit erheblich verlängern. Für Projekte, die nicht auf Nebeneffekte angewiesen sind und ihren Zustand korrekt bereinigen (was typischerweise für Projekte in einer node-Umgebung gilt), ist dies möglicherweise unerwünscht. In diesem Fall kann das Deaktivieren der Isolation die Geschwindigkeit Ihrer Tests verbessern. Um dies zu erreichen, können Sie das Flag --no-isolate an die Befehlszeile (CLI) übergeben oder die Eigenschaft test.isolate in der Konfiguration auf false setzen. Wenn Sie mehrere Pools gleichzeitig mit poolMatchGlobs verwenden, können Sie die Isolation auch für einzelne Pools deaktivieren.
vitest --no-isolateimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// Sie können die Isolation auch nur für bestimmte Pools deaktivieren
poolOptions: {
forks: {
isolate: false,
},
},
},
});TIP
Wenn Sie den vmThreads-Pool verwenden, ist es nicht möglich, die Isolation zu deaktivieren. Verwenden Sie stattdessen den threads-Pool, um die Leistung Ihrer Tests zu verbessern.
Für einige Projekte kann es auch sinnvoll sein, die parallele Ausführung von Dateien zu deaktivieren, um die Startzeit zu verkürzen. Dazu übergeben Sie das Flag --no-file-parallelism an die CLI oder setzen Sie die Eigenschaft test.fileParallelism in der Konfiguration auf false.
vitest --no-file-parallelismimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});