From c37cdebe5e7025f9ded3acedd534704124263210 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Tue, 6 Jun 2023 23:44:51 +0800 Subject: [PATCH] fix: the cli option is passed to coverage.exclude (#3506) --- packages/vitest/src/node/cli.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/node/cli.ts b/packages/vitest/src/node/cli.ts index 260fb0d8abd0..8a3b6b7557e5 100644 --- a/packages/vitest/src/node/cli.ts +++ b/packages/vitest/src/node/cli.ts @@ -2,7 +2,8 @@ import { normalize } from 'pathe' import cac from 'cac' import c from 'picocolors' import { version } from '../../package.json' -import type { Vitest, VitestRunMode } from '../types' +import { toArray } from '../utils' +import type { BaseCoverageOptions, CoverageC8Options, CoverageIstanbulOptions, Vitest, VitestRunMode } from '../types' import type { CliOptions } from './cli-api' import { startVitest } from './cli-api' import { divider } from './reporters/renderers/utils' @@ -147,6 +148,20 @@ function normalizeCliOptions(argv: CliOptions): CliOptions { else delete argv.dir + if (argv.coverage) { + const coverage = argv.coverage + if (coverage.exclude) + coverage.exclude = toArray(coverage.exclude) + + if ((coverage as BaseCoverageOptions).include) + (coverage as BaseCoverageOptions).include = toArray((coverage as BaseCoverageOptions).include) + + if ((coverage as CoverageIstanbulOptions).ignoreClassMethods) + (coverage as CoverageIstanbulOptions).ignoreClassMethods = toArray((coverage as CoverageIstanbulOptions).ignoreClassMethods) + + if ((coverage as CoverageC8Options).src) + (coverage as CoverageC8Options).src = toArray((coverage as CoverageC8Options).src) + } return argv }