-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test_runner: fix typescript coverage #49406
test_runner: fix typescript coverage #49406
Conversation
Review requested:
|
lib/internal/test_runner/test.js
Outdated
@@ -737,6 +737,7 @@ class Test extends AsyncResource { | |||
this.reported = true; | |||
reporter.plan(nesting, loc, harness.counters.topLevel); | |||
|
|||
const coverage = harness.coverage(); // Call this before printing diagnostics, since failure to collect coverage is a diagnostic. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cjihrig do we have a way to reproduce an error in coverage collection? I want to snapshot this diagnostic that was missing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the easiest thing would be to monkey patch TestCoverage.prototype.summary()
or TestCoverage.prototype.cleanup()
so that an error is reported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can also create a dumb loader like ts-node that instead of reading typescript file it will read plain txt and execute them as JS
2a9c0ed
to
53924b2
Compare
Not sure if this is relevant but in general we’re trying to avoid encouraging users to ever monkey-patch anything; that’s why the Loaders API / module customization hooks exist, and we plan to extend that model to other systems like FS and REPL. We’ve already added |
Unless I misunderstood the original question, @MoLow is trying to trigger an error for the purposes of a Node unit test. This is not something end users should ever be doing. |
Excellent, that’s why I wasn’t sure if my comment was relevant. Still though, if/when we need to provide customization abilities for the test runner, like a way to customize output or something, we should consider trying to provide APIs that are somewhat standardized across systems if possible. Maybe that won’t ever be necessary for the test runner since the reporters themselves are so customizable, but I just wanted to bring it up before people started designing new things. |
@cjihrig you understood me correctly |
53924b2
to
3ed2c63
Compare
@nodejs/test_runner I believe this is ready for reviews |
3ed2c63
to
8564f65
Compare
8564f65
to
92edcf7
Compare
Landed in 47c5152 |
Thanks a lot guys! |
PR-URL: nodejs#49406 Fixes: nodejs#49398 Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: nodejs/node#49406 Fixes: nodejs/node#49398 Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: nodejs/node#49406 Fixes: nodejs/node#49398 Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Fixes: #49398
not sure how to test this, any help appreciated