Skip to content

test_runner: add context subtests expectFailure only skip todo #5182

test_runner: add context subtests expectFailure only skip todo

test_runner: add context subtests expectFailure only skip todo #5182

Triggered via pull request April 8, 2026 21:42
Status Failure
Total duration 33m 59s
Artifacts 1

test-shared.yml

on: pull_request
Build slim tarball
2m 1s
Build slim tarball
Matrix: build
Fit to window
Zoom out
Zoom in

Annotations

16 errors
aarch64-linux: with shared libraries
Process completed with exit code 2.
aarch64-linux: with shared libraries: test/parallel/test-runner-subtest-methods.js#L0
--- stdout --- Test failure: 'expectFailure subtest' Location: test/parallel/test-runner-subtest-methods.js:24:12 'test was expected to fail but passed' Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/parallel/test-runner-subtest-methods.js
aarch64-linux: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ... ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + 'βœ– 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + 'βœ– 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ... 'βœ– run after when before throws (*ms)\n' + + ' Error: before\n' + + ' at SuiteContext.<anonymous> (<project-root>/test/fixture'... 70 more characters - ' Error: befor'... 134 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks-spec-reporter.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” describe hooks (*ms)\n' + 'βœ” describe hooks - no subtests (*ms)\n' + 'β–Ά before throws\n' + ' βœ– 1\n' + ' βœ– 2\n' + 'βœ– before throws (*ms)\n' + 'βœ– before throws - no subtests (*ms)\n' + 'β–Ά after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– after throws (*ms)\n' + 'βœ– after throws - no subtests (*ms)\n' + 'β–Ά beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– beforeEach throws (*ms)\n' + 'β–Ά afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach throws and test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws and test fails (*ms)\n' + 'β–Ά test hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” test hooks (*ms)\n' + 'βœ” test hooks - no subtests (*ms)\n' + 'β–Ά t.before throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.before throws (*ms)\n' + 'βœ– t.before throws - no subtests (*ms)\n' + 'β–Ά t.after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– t.after throws (*ms)\n' + 'βœ– t.after throws - no subtests (*ms)\n' + 'β–Ά t.beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.beforeEach throws (*ms)\n' + 'β–Ά t.afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach context when test passes\n' + ' βœ” 1 (*ms)\n' + 'βœ” afterEach context when test passes (*ms)\n' + 'β–Ά afterEach context when test fails\n'
aarch64-linux: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not o'... 9026 more characters - 'not o'... 9088 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:72:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:73:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: before throws - no subtests\n' + 'not ok 4 - before throws - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:78:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:79:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: after
aarch64-darwin: with shared libraries
Process completed with exit code 2.
aarch64-darwin: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ... ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + 'βœ– 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + 'βœ– 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ... 'βœ– run after when before throws (*ms)\n' + + ' Error: before\n' + + ' at SuiteContext.<anonymous> (<project-root>/test/fixture'... 70 more characters - ' Error: befor'... 134 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks-spec-reporter.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” describe hooks (*ms)\n' + 'βœ” describe hooks - no subtests (*ms)\n' + 'β–Ά before throws\n' + ' βœ– 1\n' + ' βœ– 2\n' + 'βœ– before throws (*ms)\n' + 'βœ– before throws - no subtests (*ms)\n' + 'β–Ά after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– after throws (*ms)\n' + 'βœ– after throws - no subtests (*ms)\n' + 'β–Ά beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– beforeEach throws (*ms)\n' + 'β–Ά afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach throws and test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws and test fails (*ms)\n' + 'β–Ά test hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” test hooks (*ms)\n' + 'βœ” test hooks - no subtests (*ms)\n' + 'β–Ά t.before throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.before throws (*ms)\n' + 'βœ– t.before throws - no subtests (*ms)\n' + 'β–Ά t.after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– t.after throws (*ms)\n' + 'βœ– t.after throws - no subtests (*ms)\n' + 'β–Ά t.beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.beforeEach throws (*ms)\n' + 'β–Ά t.afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach context when test passes\n' + ' βœ” 1 (*ms)\n' + 'βœ” afterEach context when test passes (*ms)\n' + 'β–Ά afterEach context when test fails
aarch64-darwin: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not o'... 9026 more characters - 'not o'... 9088 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:72:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:73:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: before throws - no subtests\n' + 'not ok 4 - before throws - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:78:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:79:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: af
aarch64-darwin: with shared libraries: test/parallel/test-runner-subtest-methods.js#L0
--- stdout --- Test failure: 'expectFailure subtest' Location: test/parallel/test-runner-subtest-methods.js:24:12 'test was expected to fail but passed' Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/parallel/test-runner-subtest-methods.js
x86_64-linux: with shared libraries
Process completed with exit code 2.
x86_64-linux: with shared libraries: test/parallel/test-runner-subtest-methods.js#L0
--- stdout --- Test failure: 'expectFailure subtest' Location: test/parallel/test-runner-subtest-methods.js:24:12 'test was expected to fail but passed' Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/parallel/test-runner-subtest-methods.js
x86_64-linux: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ... ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + 'βœ– 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + 'βœ– 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ... 'βœ– run after when before throws (*ms)\n' + + ' Error: before\n' + + ' at SuiteContext.<anonymous> (<project-root>/test/fixture'... 70 more characters - ' Error: befor'... 134 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks-spec-reporter.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” describe hooks (*ms)\n' + 'βœ” describe hooks - no subtests (*ms)\n' + 'β–Ά before throws\n' + ' βœ– 1\n' + ' βœ– 2\n' + 'βœ– before throws (*ms)\n' + 'βœ– before throws - no subtests (*ms)\n' + 'β–Ά after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– after throws (*ms)\n' + 'βœ– after throws - no subtests (*ms)\n' + 'β–Ά beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– beforeEach throws (*ms)\n' + 'β–Ά afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach throws and test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws and test fails (*ms)\n' + 'β–Ά test hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” test hooks (*ms)\n' + 'βœ” test hooks - no subtests (*ms)\n' + 'β–Ά t.before throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.before throws (*ms)\n' + 'βœ– t.before throws - no subtests (*ms)\n' + 'β–Ά t.after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– t.after throws (*ms)\n' + 'βœ– t.after throws - no subtests (*ms)\n' + 'β–Ά t.beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.beforeEach throws (*ms)\n' + 'β–Ά t.afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach context when test passes\n' + ' βœ” 1 (*ms)\n' + 'βœ” afterEach context when test passes (*ms)\n' + 'β–Ά afterEach context when test fails\n'
x86_64-linux: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not o'... 9026 more characters - 'not o'... 9088 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:72:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:73:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: before throws - no subtests\n' + 'not ok 4 - before throws - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:78:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:79:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: after
x86_64-darwin: with shared libraries
Process completed with exit code 2.
x86_64-darwin: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ... ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + 'βœ– 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + 'βœ– 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ... 'βœ– run after when before throws (*ms)\n' + + ' Error: before\n' + + ' at SuiteContext.<anonymous> (<project-root>/test/fixture'... 70 more characters - ' Error: befor'... 134 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks-spec-reporter.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'β–Ά describe hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” describe hooks (*ms)\n' + 'βœ” describe hooks - no subtests (*ms)\n' + 'β–Ά before throws\n' + ' βœ– 1\n' + ' βœ– 2\n' + 'βœ– before throws (*ms)\n' + 'βœ– before throws - no subtests (*ms)\n' + 'β–Ά after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– after throws (*ms)\n' + 'βœ– after throws - no subtests (*ms)\n' + 'β–Ά beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– beforeEach throws (*ms)\n' + 'β–Ά afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach throws and test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– afterEach throws and test fails (*ms)\n' + 'β–Ά test hooks\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + ' β–Ά nested\n' + ' βœ” nested 1 (*ms)\n' + ' βœ” nested 2 (*ms)\n' + ' βœ” nested (*ms)\n' + 'βœ” test hooks (*ms)\n' + 'βœ” test hooks - no subtests (*ms)\n' + 'β–Ά t.before throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.before throws (*ms)\n' + 'βœ– t.before throws - no subtests (*ms)\n' + 'β–Ά t.after throws\n' + ' βœ” 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– t.after throws (*ms)\n' + 'βœ– t.after throws - no subtests (*ms)\n' + 'β–Ά t.beforeEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.beforeEach throws (*ms)\n' + 'β–Ά t.afterEach throws\n' + ' βœ– 1 (*ms)\n' + ' βœ– 2 (*ms)\n' + 'βœ– t.afterEach throws (*ms)\n' + 'β–Ά afterEach when test fails\n' + ' βœ– 1 (*ms)\n' + ' βœ” 2 (*ms)\n' + 'βœ– afterEach when test fails (*ms)\n' + 'β–Ά afterEach context when test passes\n' + ' βœ” 1 (*ms)\n' + 'βœ” afterEach context when test passes (*ms)\n' + 'β–Ά afterEach context when test fails
x86_64-darwin: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not o'... 9026 more characters - 'not o'... 9088 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:72:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:73:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: before throws - no subtests\n' + 'not ok 4 - before throws - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:78:1'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' SuiteContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:79:24)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: af
x86_64-darwin: with shared libraries: test/parallel/test-runner-subtest-methods.js#L0
--- stdout --- Test failure: 'expectFailure subtest' Location: test/parallel/test-runner-subtest-methods.js:24:12 'test was expected to fail but passed' Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /Users/runner/work/_temp/node-v26.0.0-nightly2026-04-08a395f5d663-slim/test/parallel/test-runner-subtest-methods.js

Artifacts

Produced during runtime
Name Size Digest
tarballs
48.9 MB
sha256:39f18a1b48266c998148178a25d066b2c6292892402b21db60ca24c9cbfef83a