You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Test runner run with watch node --test --watch swallows errors in before, after blocks #50355
Darwin adonai 22.6.0 Darwin Kernel Version 22.6.0: Fri Sep 15 13:41:28 PDT 2023; root:xnu-8796.141.3.700.8~1/RELEASE_ARM64_T6000 x86_64
Subsystem
No response
What steps will reproduce the bug?
Save this test to a file, e.g. issue.mjs
import{describe,before,it}from'node:test';describe('Testy test',()=>{before(()=>{thrownewError('This error is not output');});it('test',()=>{console.log('test pass');});});
Run the test runner in watch mode: node --test --watch issue.mjs
How often does it reproduce? Is there a required condition?
reproduces every time
What is the expected behavior? Why is that the expected behavior?
I expect to see the error and stacktrace in the output. If you do not run the test in watch mode, the error is not swallowed and the output looks like:
▶ Testy test
✖ test
'test did not finish before its parent and was cancelled'
▶ Testy test (1.376667ms)
ℹ tests 1
ℹ suites 1
ℹ pass 0
ℹ fail 0
ℹ cancelled 1
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 158.914542
✖ failing tests:
test at file:/tmp/issue.mjs:8:5
✖ test
'test did not finish before its parent and was cancelled'
test at file:/tmp/issue.mjs:3:1
✖ Testy test (1.376667ms)
Error: This error is not output
at SuiteContext.<anonymous> (file:///tmp/issue.mjs:5:15)
at TestHook.runInAsyncScope (node:async_hooks:206:9)
at TestHook.run (node:internal/test_runner/test:631:25)
at TestHook.run (node:internal/test_runner/test:856:18)
at TestHook.run (node:internal/util:531:12)
at node:internal/test_runner/test:565:20
at async Suite.runHook (node:internal/test_runner/test:563:7)
at async Suite.run (node:internal/test_runner/test:942:7)
at async startSubtest (node:internal/test_runner/harness:208:3)
What do you see instead?
I get output (notice no exception or stack trace):
▶ Testy test
✖ test
'test did not finish before its parent and was cancelled'
▶ Testy test (1.341125ms)
Additional information
If the Error is thrown in it, describe, beforeEach, or afterEach it does show as expected in output. The problem seems to be confined to before and after blocks.
Activity
chrishiestand commentedon Oct 26, 2023
Thanks @MoLow and the rest of the team! This is some impressive development velocity!