From 6023e95d5b9d83e7b4deedb819b7db43bdbb0a47 Mon Sep 17 00:00:00 2001 From: lucaronin Date: Tue, 21 Apr 2026 17:38:44 +0200 Subject: [PATCH] fix: serialize vitest coverage files --- scripts/run-vitest-coverage.mjs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/run-vitest-coverage.mjs b/scripts/run-vitest-coverage.mjs index caac3cbd..857f5716 100644 --- a/scripts/run-vitest-coverage.mjs +++ b/scripts/run-vitest-coverage.mjs @@ -9,6 +9,9 @@ const rootDir = process.cwd() const finalCoverageDir = resolve(rootDir, 'coverage') const coverageRunRoot = resolve(os.tmpdir(), 'tolaria-vitest-coverage-runs') const forwardedArgs = process.argv.slice(2) +const hasFileParallelismOverride = forwardedArgs.some((arg) => + arg === '--fileParallelism' || arg === '--no-file-parallelism' +) const maxAttempts = 2 const packageManagerExec = process.env.npm_execpath @@ -39,6 +42,10 @@ async function runCoverageAttempt(attempt) { const commandArgs = [ ...baseCommandArgs, + // Vitest 4.0.18 occasionally crashes during coverage worker teardown + // after all files pass, so serialize file execution unless a caller + // explicitly opts into a different file-parallelism mode. + ...(hasFileParallelismOverride ? [] : ['--no-file-parallelism']), `--coverage.reportsDirectory=${runCoverageDir}`, ...forwardedArgs, ]