diff --git a/packages/vitest/src/node/cli.ts b/packages/vitest/src/node/cli.ts index 6e38d56e0b0c..189486db3901 100644 --- a/packages/vitest/src/node/cli.ts +++ b/packages/vitest/src/node/cli.ts @@ -65,6 +65,6 @@ async function run(cliFilters: string[], options: CliOptions) { } async function start(cliFilters: string[], options: CliOptions) { - await startVitest(cliFilters, options) - process.exit() + if (await startVitest(cliFilters, options) === false) + process.exit() } diff --git a/packages/vitest/src/node/cliApi.ts b/packages/vitest/src/node/cliApi.ts index 154d800e676a..950961eb5e0f 100644 --- a/packages/vitest/src/node/cliApi.ts +++ b/packages/vitest/src/node/cliApi.ts @@ -22,7 +22,7 @@ export async function startVitest(cliFilters: string[], options: CliOptions, vit if (!await ensurePackageInstalled('vite')) { process.exitCode = 1 - return + return false } if (typeof options.coverage === 'boolean') @@ -33,21 +33,21 @@ export async function startVitest(cliFilters: string[], options: CliOptions, vit if (ctx.config.coverage.enabled) { if (!await ensurePackageInstalled('c8')) { process.exitCode = 1 - return + return false } if (!process.env.NODE_V8_COVERAGE) { process.env.NODE_V8_COVERAGE = ctx.config.coverage.tempDirectory const { exitCode } = await execa(process.argv0, process.argv.slice(1), { stdio: 'inherit', reject: false }) process.exitCode = exitCode - return + return false } } if (ctx.config.environment && ctx.config.environment !== 'node') { if (!await ensurePackageInstalled(ctx.config.environment)) { process.exitCode = 1 - return + return false } } @@ -72,4 +72,5 @@ export async function startVitest(cliFilters: string[], options: CliOptions, vit if (!ctx.config.watch) await ctx.exit() } + return true }