Skip to content

Commit 6427526

Browse files
feat(coverage): adds text output and check percentages
1 parent 112c529 commit 6427526

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

src/coverage.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,20 @@ async function generateCoverageReport (job) {
110110
await writeFile(coverageFilename, JSON.stringify(coverageData))
111111
}
112112
const reporters = job.coverageReporters.map(reporter => `--reporter=${reporter}`)
113-
await nyc(job, 'report', ...reporters, '--temp-dir', coverageMergedDir, '--report-dir', job.coverageReportDir, '--nycrc-path', job[$nycSettingsPath])
113+
if (!job.coverageReporters.includes('text')) {
114+
reporters.push('--reporter=text')
115+
}
116+
const checks = []
117+
if (job.coverageCheckBranches || job.coverageCheckFunctions || job.coverageCheckLines || job.coverageCheckStatements) {
118+
checks.push(
119+
`--branches=${job.coverageCheckBranches}`,
120+
`--functions=${job.coverageCheckFunctions}`,
121+
`--lines=${job.coverageCheckLines}`,
122+
`--statements=${job.coverageCheckStatements}`,
123+
'--check-coverage'
124+
)
125+
}
126+
await nyc(job, 'report', ...reporters, ...checks, '--temp-dir', coverageMergedDir, '--report-dir', job.coverageReportDir, '--nycrc-path', job[$nycSettingsPath])
114127
}
115128

116129
module.exports = {

src/job.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const { name, description, version } = require(join(__dirname, '../package.json'
77
const { getOutput } = require('./output')
88
const { $valueSources } = require('./symbols')
99
const { buildAndCheckMode } = require('./job-mode')
10-
const { boolean, integer, timeout, url, arrayOf, regex } = require('./options')
10+
const { boolean, integer, timeout, url, arrayOf, regex, percent } = require('./options')
1111

1212
const $status = Symbol('status')
1313

@@ -119,9 +119,13 @@ function getCommand (cwd) {
119119
.option('--coverage [flag]', '[💻🔗] Enable or disable code coverage', boolean)
120120
.option('--no-coverage', '[💻🔗] Disable code coverage')
121121
.option('-cs, --coverage-settings <path>', '[💻🔗] Path to a custom nyc.json file providing settings for instrumentation (relative to cwd or use $/ for provided ones)', '$/nyc.json')
122-
.option('-ct, --coverage-temp-dir <path>', '[💻🔗] Directory to output raw coverage information to (relative to cwd)', '.nyc_output')
123-
.option('-cr, --coverage-report-dir <path>', '[💻🔗] Directory to store the coverage report files (relative to cwd)', 'coverage')
124-
.option('-cr, --coverage-reporters <reporter...>', '[💻🔗] List of nyc reporters to use', ['lcov', 'cobertura'])
122+
.option('-ctd, --coverage-temp-dir <path>', '[💻🔗] Directory to output raw coverage information to (relative to cwd)', '.nyc_output')
123+
.option('-crd, --coverage-report-dir <path>', '[💻🔗] Directory to store the coverage report files (relative to cwd)', 'coverage')
124+
.option('-cr, --coverage-reporters <reporter...>', '[💻🔗] List of nyc reporters to use (text is always used)', ['lcov', 'cobertura'])
125+
.option('-ccb, --coverage-check-branches <percent>', '[💻🔗] What % of branches must be covered', percent, 0)
126+
.option('-ccf, --coverage-check-functions <percent>', '[💻🔗] What % of functions must be covered', percent, 0)
127+
.option('-ccl, --coverage-check-lines <percent>', '[💻🔗] What % of lines must be covered', percent, 0)
128+
.option('-ccs, --coverage-check-statements <percent>', '[💻🔗] What % of statements must be covered', percent, 0)
125129
.option('-s, --serve-only [flag]', '[💻🔗] Serve only', boolean, false)
126130

127131
// Specific to legacy (and might be used with url if pointing to local project)

0 commit comments

Comments
 (0)