Use monocart for coverage reports, enable codecov (#58850)

This commit is contained in:
Jake Bailey 2024-07-17 14:55:45 -07:00 committed by GitHub
parent e7e813542a
commit ba46eca139
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 316 additions and 18 deletions

View File

@ -1,5 +1,5 @@
{
"reporter": ["lcovonly", "cobertura"],
"reporter": ["lcovonly", "cobertura", "v8", "codecov"],
"src": "src",
"include": ["src/**", "built/local/**"],
"exclude": ["**/node_modules/**"],

14
.github/codecov.yml vendored Normal file
View File

@ -0,0 +1,14 @@
comment: false
coverage:
precision: 5
status:
patch:
default:
informational: true
project:
default:
informational: true
github_checks:
annotations: false

View File

@ -69,6 +69,38 @@ jobs:
git add tests/baselines/reference
git diff --staged --exit-code
coverage:
runs-on:
- 'self-hosted'
- '1ES.Pool=TypeScript-1ES-GitHub-Large'
- '1ES.ImageOverride=ubuntu-22.04'
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
check-latest: true
- run: npm ci
- name: Run tests with coverage
run: npm test -- --no-lint --coverage
- name: Upload coverage artifact
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: coverage
path: coverage
- uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
with:
use_oidc: true
file: ./coverage/codecov.json
lint:
runs-on: ubuntu-latest

View File

@ -28,7 +28,7 @@
"ignore": [
"scripts/failed-tests.d.cts"
],
"ignoreDependencies": ["c8", "eslint-formatter-autolinkable-stylish", "mocha-fivemat-progress-reporter"],
"ignoreDependencies": ["c8", "eslint-formatter-autolinkable-stylish", "mocha-fivemat-progress-reporter", "monocart-coverage-reports"],
"ignoreExportsUsedInFile": {
"enum": true,
"interface": true,

264
package-lock.json generated
View File

@ -46,6 +46,7 @@
"minimist": "^1.2.8",
"mocha": "^10.5.2",
"mocha-fivemat-progress-reporter": "^0.1.0",
"monocart-coverage-reports": "^2.9.2",
"ms": "^2.1.3",
"node-fetch": "^3.3.2",
"playwright": "^1.45.0",
@ -776,9 +777,9 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
@ -1258,9 +1259,9 @@
"dev": true
},
"node_modules/acorn": {
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"version": "8.12.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
"integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@ -1278,6 +1279,30 @@
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/acorn-loose": {
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz",
"integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==",
"dev": true,
"dependencies": {
"acorn": "^8.11.0"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/acorn-walk": {
"version": "8.3.3",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz",
"integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==",
"dev": true,
"dependencies": {
"acorn": "^8.11.0"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
@ -1788,6 +1813,12 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/console-grid": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/console-grid/-/console-grid-2.2.2.tgz",
"integrity": "sha512-ohlgXexdDTKLNsZz7DSJuCAwmRc8omSS61txOk39W3NOthgKGr1a1jJpZ5BCQe4PlrwMw01OvPQ1Bl3G7Y/uFg==",
"dev": true
},
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@ -1943,6 +1974,15 @@
"node": ">=0.3.1"
}
},
"node_modules/diff-sequences": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true,
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@ -2004,6 +2044,12 @@
"wcwidth": "^1.0.1"
}
},
"node_modules/eight-colors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/eight-colors/-/eight-colors-1.3.0.tgz",
"integrity": "sha512-hVoK898cR71ADj7L1LZWaECLaSkzzPtqGXIaKv4K6Pzb72QgjLVsQaNI+ELDQQshzFvgp5xTPkaYkPGqw3YR+g==",
"dev": true
},
"node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@ -3196,6 +3242,12 @@
"node": "14 || >=16.14"
}
},
"node_modules/lz-utils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/lz-utils/-/lz-utils-2.0.2.tgz",
"integrity": "sha512-i1PJN4hNEevkrvLMqNWCCac1BcB5SRaghywG7HVzWOyVkFOasLCG19ND1sY1F/ZEsM6SnGtoXyBWnmfqOM5r6g==",
"dev": true
},
"node_modules/make-dir": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
@ -3467,6 +3519,78 @@
"node": ">=10"
}
},
"node_modules/monocart-code-viewer": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/monocart-code-viewer/-/monocart-code-viewer-1.1.4.tgz",
"integrity": "sha512-ehSe1lBG7D1VDVLjTkHV63J3zAgzyhlC9OaxOri7D0X4L5/EcZUOG5TEoMmYErL+YGSOQXghU9kSSAelwNnp1Q==",
"dev": true
},
"node_modules/monocart-coverage-reports": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/monocart-coverage-reports/-/monocart-coverage-reports-2.9.2.tgz",
"integrity": "sha512-kczj6csD/OYJN4/qsRq5E8bMytHHw+Mi8InOnGH/zwszwsI92X4rbH9SJgmKm10wqzbOPwfxcHezLelK3CFWrA==",
"dev": true,
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jridgewell/sourcemap-codec": "^1.5.0",
"acorn": "^8.12.1",
"acorn-loose": "^8.4.0",
"acorn-walk": "^8.3.3",
"commander": "^12.1.0",
"console-grid": "^2.2.2",
"diff-sequences": "^29.6.3",
"eight-colors": "^1.3.0",
"foreground-child": "^3.2.1",
"istanbul-lib-coverage": "^3.2.2",
"istanbul-lib-report": "^3.0.1",
"istanbul-reports": "^3.1.7",
"lz-utils": "^2.0.2",
"minimatch": "^10.0.1",
"monocart-code-viewer": "^1.1.4",
"monocart-formatter": "^3.0.0",
"monocart-locator": "^1.0.2",
"turbogrid": "^3.2.0"
},
"bin": {
"mcr": "lib/cli.js"
}
},
"node_modules/monocart-coverage-reports/node_modules/commander": {
"version": "12.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"dev": true,
"engines": {
"node": ">=18"
}
},
"node_modules/monocart-coverage-reports/node_modules/minimatch": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
"integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": "20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/monocart-formatter": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/monocart-formatter/-/monocart-formatter-3.0.0.tgz",
"integrity": "sha512-91OQpUb/9iDqvrblUv6ki11Jxi1d3Fp5u2jfVAPl3UdNp9TM+iBleLzXntUS51W0o+zoya3CJjZZ01z2XWn25g==",
"dev": true
},
"node_modules/monocart-locator": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/monocart-locator/-/monocart-locator-1.0.2.tgz",
"integrity": "sha512-v8W5hJLcWMIxLCcSi/MHh+VeefI+ycFmGz23Froer9QzWjrbg4J3gFJBuI/T1VLNoYxF47bVPPxq8ZlNX4gVCw==",
"dev": true
},
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@ -4389,6 +4513,12 @@
"node": ">=0.6.11 <=0.7.0 || >=0.7.3"
}
},
"node_modules/turbogrid": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/turbogrid/-/turbogrid-3.2.0.tgz",
"integrity": "sha512-c+2qrCGWzoYpLlxtHgRJ4V5dDRE9fUT7D9maxtdBCqJ0NzCdY+x7xF3/F6cG/+n3VIzKfIS+p9Z/0YMQPf6k/Q==",
"dev": true
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@ -5203,9 +5333,9 @@
"dev": true
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true
},
"@jridgewell/trace-mapping": {
@ -5540,9 +5670,9 @@
"dev": true
},
"acorn": {
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"version": "8.12.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
"integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
"dev": true
},
"acorn-jsx": {
@ -5552,6 +5682,24 @@
"dev": true,
"requires": {}
},
"acorn-loose": {
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz",
"integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==",
"dev": true,
"requires": {
"acorn": "^8.11.0"
}
},
"acorn-walk": {
"version": "8.3.3",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz",
"integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==",
"dev": true,
"requires": {
"acorn": "^8.11.0"
}
},
"aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
@ -5932,6 +6080,12 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"console-grid": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/console-grid/-/console-grid-2.2.2.tgz",
"integrity": "sha512-ohlgXexdDTKLNsZz7DSJuCAwmRc8omSS61txOk39W3NOthgKGr1a1jJpZ5BCQe4PlrwMw01OvPQ1Bl3G7Y/uFg==",
"dev": true
},
"convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@ -6047,6 +6201,12 @@
"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
"dev": true
},
"diff-sequences": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true
},
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@ -6096,6 +6256,12 @@
"wcwidth": "^1.0.1"
}
},
"eight-colors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/eight-colors/-/eight-colors-1.3.0.tgz",
"integrity": "sha512-hVoK898cR71ADj7L1LZWaECLaSkzzPtqGXIaKv4K6Pzb72QgjLVsQaNI+ELDQQshzFvgp5xTPkaYkPGqw3YR+g==",
"dev": true
},
"emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@ -6932,6 +7098,12 @@
"integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
"dev": true
},
"lz-utils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/lz-utils/-/lz-utils-2.0.2.tgz",
"integrity": "sha512-i1PJN4hNEevkrvLMqNWCCac1BcB5SRaghywG7HVzWOyVkFOasLCG19ND1sY1F/ZEsM6SnGtoXyBWnmfqOM5r6g==",
"dev": true
},
"make-dir": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
@ -7134,6 +7306,68 @@
"integrity": "sha512-nCf6dmCEHObJ8BBrcjW+UHYvVtHEL+FliYR/Mfc/v7dKenNmBQ0ZSuvlICgsyQy9Tt581ldvh+SReS4qp4LrQw==",
"dev": true
},
"monocart-code-viewer": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/monocart-code-viewer/-/monocart-code-viewer-1.1.4.tgz",
"integrity": "sha512-ehSe1lBG7D1VDVLjTkHV63J3zAgzyhlC9OaxOri7D0X4L5/EcZUOG5TEoMmYErL+YGSOQXghU9kSSAelwNnp1Q==",
"dev": true
},
"monocart-coverage-reports": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/monocart-coverage-reports/-/monocart-coverage-reports-2.9.2.tgz",
"integrity": "sha512-kczj6csD/OYJN4/qsRq5E8bMytHHw+Mi8InOnGH/zwszwsI92X4rbH9SJgmKm10wqzbOPwfxcHezLelK3CFWrA==",
"dev": true,
"requires": {
"@bcoe/v8-coverage": "^0.2.3",
"@jridgewell/sourcemap-codec": "^1.5.0",
"acorn": "^8.12.1",
"acorn-loose": "^8.4.0",
"acorn-walk": "^8.3.3",
"commander": "^12.1.0",
"console-grid": "^2.2.2",
"diff-sequences": "^29.6.3",
"eight-colors": "^1.3.0",
"foreground-child": "^3.2.1",
"istanbul-lib-coverage": "^3.2.2",
"istanbul-lib-report": "^3.0.1",
"istanbul-reports": "^3.1.7",
"lz-utils": "^2.0.2",
"minimatch": "^10.0.1",
"monocart-code-viewer": "^1.1.4",
"monocart-formatter": "^3.0.0",
"monocart-locator": "^1.0.2",
"turbogrid": "^3.2.0"
},
"dependencies": {
"commander": {
"version": "12.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"dev": true
},
"minimatch": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
"integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
"dev": true,
"requires": {
"brace-expansion": "^2.0.1"
}
}
}
},
"monocart-formatter": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/monocart-formatter/-/monocart-formatter-3.0.0.tgz",
"integrity": "sha512-91OQpUb/9iDqvrblUv6ki11Jxi1d3Fp5u2jfVAPl3UdNp9TM+iBleLzXntUS51W0o+zoya3CJjZZ01z2XWn25g==",
"dev": true
},
"monocart-locator": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/monocart-locator/-/monocart-locator-1.0.2.tgz",
"integrity": "sha512-v8W5hJLcWMIxLCcSi/MHh+VeefI+ycFmGz23Froer9QzWjrbg4J3gFJBuI/T1VLNoYxF47bVPPxq8ZlNX4gVCw==",
"dev": true
},
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@ -7748,6 +7982,12 @@
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
"dev": true
},
"turbogrid": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/turbogrid/-/turbogrid-3.2.0.tgz",
"integrity": "sha512-c+2qrCGWzoYpLlxtHgRJ4V5dDRE9fUT7D9maxtdBCqJ0NzCdY+x7xF3/F6cG/+n3VIzKfIS+p9Z/0YMQPf6k/Q==",
"dev": true
},
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",

View File

@ -72,6 +72,7 @@
"minimist": "^1.2.8",
"mocha": "^10.5.2",
"mocha-fivemat-progress-reporter": "^0.1.0",
"monocart-coverage-reports": "^2.9.2",
"ms": "^2.1.3",
"node-fetch": "^3.3.2",
"playwright": "^1.45.0",

View File

@ -32,7 +32,7 @@ export const coverageDir = "coverage";
* @param {boolean} [options.watching]
*/
export async function runConsoleTests(runJs, defaultReporter, runInParallel, options = {}) {
const testTimeout = cmdLineOptions.timeout;
let testTimeout = cmdLineOptions.timeout;
const tests = cmdLineOptions.tests;
const skipSysTests = cmdLineOptions.skipSysTests;
const inspect = cmdLineOptions.break || cmdLineOptions.inspect;
@ -45,6 +45,12 @@ export async function runConsoleTests(runJs, defaultReporter, runInParallel, opt
const shards = +cmdLineOptions.shards || undefined;
const shardId = +cmdLineOptions.shardId || undefined;
const coverage = cmdLineOptions.coverage;
if (coverage && testTimeout) {
testTimeout *= 2;
console.log(chalk.yellowBright(`[coverage] doubling test timeout to ${testTimeout}ms...`));
}
if (!cmdLineOptions.dirty) {
if (options.watching) {
console.log(chalk.yellowBright(`[watch] cleaning test directories...`));
@ -142,9 +148,14 @@ export async function runConsoleTests(runJs, defaultReporter, runInParallel, opt
process.env.NODE_V8_COVERAGE = path.resolve(coverageDir, "tmp");
}
await exec(process.execPath, args, { token: options.token });
if (coverage) {
await exec("npm", ["--prefer-offline", "exec", "--", "c8", "report"], { token: options.token });
try {
await exec(process.execPath, args, { token: options.token });
}
finally {
// Calculate coverage even if tests failed.
if (coverage) {
await exec("npm", ["--prefer-offline", "exec", "--", "c8", "report", "--experimental-monocart"], { token: options.token });
}
}
}
catch (e) {