mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
test_runner: move coverage collection to root.postRun()
This commit moves code coverage collection from the test harness exit handler to the postRun() function of the root test. This is necessary preparatory work for supporting code coverage with --test. The reason is that --test is implemented on top of run(), and that function calls the root test's postRun() function, which outputs the test summary. This happens before the harness exit handler. PR-URL: https://github.com/nodejs/node/pull/47651 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
This commit is contained in:
1 parent
db1bf9ddbb
commit
ecb023be8a
2 files changed
+6
-4
No files matched your search
@@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
const {
|
||||
ArrayPrototypeForEach,
|
||||
FunctionPrototypeBind,
|
||||
PromiseResolve,
|
||||
SafeMap,
|
||||
} = primordials;
|
||||
@@ -140,7 +141,6 @@ function setup(root) {
|
||||
createProcessEventHandler('unhandledRejection', root);
|
||||
const coverage = configureCoverage(root, globalOptions);
|
||||
const exitHandler = () => {
|
||||
root.harness.coverage = collectCoverage(root, coverage);
|
||||
root.postRun(new ERR_TEST_FAILURE(
|
||||
'Promise resolution is still pending but the event loop has already resolved',
|
||||
kCancelledByParent));
|
||||
@@ -167,7 +167,7 @@ function setup(root) {
|
||||
root.harness = {
|
||||
__proto__: null,
|
||||
bootstrapComplete: false,
|
||||
coverage: null,
|
||||
coverage: FunctionPrototypeBind(collectCoverage, null, root, coverage),
|
||||
counters: {
|
||||
__proto__: null,
|
||||
all: 0,
|
||||
|
||||
@@ -644,8 +644,10 @@ class Test extends AsyncResource {
|
||||
this.reporter.diagnostic(this.nesting, kFilename, `todo ${this.root.harness.counters.todo}`);
|
||||
this.reporter.diagnostic(this.nesting, kFilename, `duration_ms ${this.#duration()}`);
|
||||
|
||||
if (this.harness?.coverage) {
|
||||
this.reporter.coverage(this.nesting, kFilename, this.harness.coverage);
|
||||
const coverage = this.harness.coverage();
|
||||
|
||||
if (coverage) {
|
||||
this.reporter.coverage(this.nesting, kFilename, coverage);
|
||||
}
|
||||
|
||||
this.reporter.push(null);
|
||||
|
||||
Reference in new issue
Block a user