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 separatenWorker
aus. - 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-isolate
import { 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-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});