-
-
Notifications
You must be signed in to change notification settings - Fork 269
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
tap runner is not working in node16 #746
Comments
Here's a related user report in an issue comment: #624 (comment) |
Also related, thread tracking this problem in Node.js smoke tests' repo (citgm): nodejs/citgm#852 (comment) |
Should be fixed by a73b158 |
This is still broken in tap@14 because it is using treport@1. treport doesn't have a changelog or an "engines" in its package.json so I can't easily tell what breaking change there was in treport@2. Could tap@14 be updated to treport@2? Is there any intention in maintaining tap@14 anymore? If not, then currently it is impossible to use node-tap with a project that wants to test with node v8 and node v16. Granted it is time to drop node v8 support, but wheels grind slowly sometime. :) Thanks. |
@trentm The problem is that treport 2 uses libtap under the hood, so it can never work with node 8. Really, the core problem is some incompatibilities in some lowlevel stuff that changed between node 8 and node 16, making it very difficult to bridge the gap. I can't fault them for having some breaking changes across 8 SemVer major bumps, of course, but it does make this unresolvable. I recommend using tap 15, but have a pre-test command in your CI workflows to manually install tap 14 on node 8. It'll mean that you have to be a little careful about which features you use in your tests, but I don't think very much changed in that part of the interface (and was mostly additive), so it should be relatively easy. The breaking changes were all in the test harness/runner machinery and adding strictness to a bunch of things, but tests themselves should be mostly backwards compatible. |
@isaacs Thanks. Yah... I got lost in tracing the differences in CallSite.getTypeName() (from https://v8.dev/docs/stack-trace-api) in the
The v8.dev link above states "To maintain restrictions imposed on strict mode functions, frames that have a strict mode function and all frames below (its caller etc.) are not allow to access their receiver and function objects. " Anyway, I understand that it is unresolvable in tap 14. Cheers. |
Also bump to tap@15 (min supported node is v10). tap@14 doesn't work with node v16 and later (tapjs/tapjs#746).
Also bump to tap@15 (min supported node is v10). tap@14 doesn't work with node v16 and later (tapjs/tapjs#746).
Tests are currently failing in consumers, such as the npm cli when running using node16:
We can see tests are also currently failing in
main
branch ofnode-tap
too:You can also see error on loading reporters when running
node test/run/reporters.js
More info
The text was updated successfully, but these errors were encountered: