Skip to content

Commit 9f04386

Browse files
authored
fix(coverage): log info only when terminal reporter is used (#4027)
1 parent e691a9c commit 9f04386

File tree

5 files changed

+28
-3
lines changed

5 files changed

+28
-3
lines changed

packages/coverage-istanbul/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"istanbul-lib-report": "^3.0.1",
5151
"istanbul-lib-source-maps": "^4.0.1",
5252
"istanbul-reports": "^3.1.5",
53+
"picocolors": "^1.0.0",
5354
"test-exclude": "^6.0.0"
5455
},
5556
"devDependencies": {

packages/coverage-istanbul/src/provider.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { resolve } from 'pathe'
33
import type { AfterSuiteRunMeta, CoverageIstanbulOptions, CoverageProvider, ReportContext, ResolvedCoverageOptions, Vitest } from 'vitest'
44
import { coverageConfigDefaults, defaultExclude, defaultInclude } from 'vitest/config'
55
import { BaseCoverageProvider } from 'vitest/coverage'
6+
import c from 'picocolors'
67
import libReport from 'istanbul-lib-report'
78
import reports from 'istanbul-reports'
89
import type { CoverageMap } from 'istanbul-lib-coverage'
@@ -134,6 +135,9 @@ export class IstanbulCoverageProvider extends BaseCoverageProvider implements Co
134135
watermarks: this.options.watermarks,
135136
})
136137

138+
if (hasTerminalReporter(this.options.reporter))
139+
this.ctx.logger.log(c.blue(' % ') + c.dim('Coverage report from ') + c.yellow(this.name))
140+
137141
for (const reporter of this.options.reporter) {
138142
reports.create(reporter[0], {
139143
skipFull: this.options.skipFull,
@@ -253,3 +257,11 @@ function isEmptyCoverageRange(range: libCoverage.Range) {
253257
|| range.end.column === undefined
254258
)
255259
}
260+
261+
function hasTerminalReporter(reporters: Options['reporter']) {
262+
return reporters.some(([reporter]) =>
263+
reporter === 'text'
264+
|| reporter === 'text-summary'
265+
|| reporter === 'text-lcov'
266+
|| reporter === 'teamcity')
267+
}

packages/coverage-v8/src/provider.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ export class V8CoverageProvider extends BaseCoverageProvider implements Coverage
143143
watermarks: this.options.watermarks,
144144
})
145145

146+
if (hasTerminalReporter(this.options.reporter))
147+
this.ctx.logger.log(c.blue(' % ') + c.dim('Coverage report from ') + c.yellow(this.name))
148+
146149
for (const reporter of this.options.reporter) {
147150
reports.create(reporter[0], {
148151
skipFull: this.options.skipFull,
@@ -295,3 +298,11 @@ function normalizeTransformResults(fetchCaches: Map<string, { result: FetchResul
295298

296299
return normalized
297300
}
301+
302+
function hasTerminalReporter(reporters: Options['reporter']) {
303+
return reporters.some(([reporter]) =>
304+
reporter === 'text'
305+
|| reporter === 'text-summary'
306+
|| reporter === 'text-lcov'
307+
|| reporter === 'teamcity')
308+
}

packages/vitest/src/node/core.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -730,10 +730,8 @@ export class Vitest {
730730
if (!this.config.coverage.reportOnFailure && this.state.getCountOfFailedTests() > 0)
731731
return
732732

733-
if (this.coverageProvider) {
734-
this.logger.log(c.blue(' % ') + c.dim('Coverage report from ') + c.yellow(this.coverageProvider.name))
733+
if (this.coverageProvider)
735734
await this.coverageProvider.reportCoverage({ allTestsRun })
736-
}
737735
}
738736

739737
async close() {

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)