Skip to content

Commit 3806c79

Browse files
author
Benjamin
committed
feat: allow relative paths to be optionally included
1 parent df6084b commit 3806c79

4 files changed

Lines changed: 23 additions & 3 deletions

File tree

bin/c8.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ function outputReport () {
3434
reporter: Array.isArray(argv.reporter) ? argv.reporter : [argv.reporter],
3535
tempDirectory: argv.tempDirectory,
3636
watermarks: argv.watermarks,
37-
resolve: argv.resolve
37+
resolve: argv.resolve,
38+
omitRelative: argv.omitRelative
3839
})
3940
}

lib/parse-args.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ yargs()
3636
default: '',
3737
describe: 'resolve paths to alternate base directory'
3838
})
39+
.option('omit-relative', {
40+
default: true,
41+
type: 'boolean',
42+
describe: 'omit any paths that are not absolute, e.g., internal/net.js'
43+
})
3944
.command('report', 'read V8 coverage data from temp and output report')
4045
.pkgConf('c8')
4146
.config(config)

lib/report.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ class Report {
1414
reporter,
1515
tempDirectory,
1616
watermarks,
17-
resolve
17+
resolve,
18+
omitRelative
1819
}) {
1920
this.reporter = reporter
2021
this.tempDirectory = tempDirectory
@@ -24,6 +25,7 @@ class Report {
2425
exclude: exclude,
2526
include: include
2627
})
28+
this.omitRelative = omitRelative
2729
}
2830
run () {
2931
const map = this._getCoverageMapFromAllCoverageFiles()
@@ -44,7 +46,7 @@ class Report {
4446
this._loadReports().forEach((report) => {
4547
report.result.forEach((result) => {
4648
if (this.exclude.shouldInstrument(result.url) &&
47-
isAbsolute(result.url)) {
49+
(!this.omitRelative || isAbsolute(result.url))) {
4850
if (mergedResults[result.url]) {
4951
mergedResults[result.url] = v8CoverageMerge(
5052
mergedResults[result.url],

test/integration.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,16 @@ All files | 100 | 77.78 | 100 | 100 |
3737
subprocess.js | 100 | 71.43 | 100 | 100 | 9,13 |
3838
-------------------|----------|----------|----------|----------|-------------------|`)
3939
})
40+
41+
it('omit-relative can be set to false', () => {
42+
const { output } = spawnSync(c8Path, [
43+
'--exclude="test/*.js"',
44+
'--omit-relative=false',
45+
process.execPath,
46+
require.resolve('./fixtures/multiple-spawn')
47+
])
48+
output.toString('utf8').should.match(
49+
/Error: ENOENT: no such file or directory.*loaders\.js/
50+
)
51+
})
4052
})

0 commit comments

Comments
 (0)