test_runner: add context subtests expectFailure only skip todo
#4249
test-shared.yml
on: pull_request
Build slim tarball
2m 0s
Matrix: build
Annotations
40 errors and 3 warnings
|
aarch64-linux: with shared libraries:
test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout ---
Test failure: 'test should pass on third rerun'
Location: test/parallel/test-runner-test-rerun-failures.js:78:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:87:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [Array],
expected: [Array],
operator: 'deepStrictEqual',
diff: 'simple'
}
Test failure: 'test should pass on third rerun with `--test`'
Location: test/parallel/test-runner-test-rerun-failures.js:107:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:116:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async Test.processPendingSubtests (node:internal/tes
|
|
aarch64-linux: with shared libraries:
test/parallel/test-runner-reporters.js#L114
--- stdout ---
Test failure: 'should support a 'js' file as a custom reporter'
Location: test/parallel/test-runner-reporters.js:109:5
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
+ 'node:internal/test_runner/harness:129\n' +
+ ' throw err;\n' +
+ ' ^\n' +
+ '\n' +
+ 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
+ '+ actual - expected\n' +
+ '\n' +
+ "+ 'node:internal/test_runner/test'\n" +
+ "- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
+ '\n' +
+ ' at customReporter (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
+ ' at async nextAsync (node:internal/streams/from:182:33)\n' +
+ "Emitted 'error' event on Duplex instance at:\n" +
+ ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' +
+ ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' +
+ ' generatedMessage: true,\n' +
+ " code: 'ERR_ASSERTION',\n" +
+ " actual: 'node:internal/test_runner/test',\n" +
+ " expected: '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js',\n" +
+ " operator: 'strictEqual',\n" +
+ " diff: 'simple'\n" +
+ '}\n' +
+ '\n' +
+ 'Node.js v26.0.0-pre\n'
- ''
at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-reporters.js:114:14)
at Test.runInAsyncScope (node:async_hooks:226:14)
at Test.run (node:internal/test_runner/test:1210:25)
at Test.start (node:internal/test_runner/test:1105:17)
at node:internal/test_runner/test:1626:71
at node:internal/per_context/primordials:466:82
at new Promise (<anonymous>)
at new SafePromise (node:internal/per_context/primordials:435:3)
at node:internal/per_context/primordials:466:9
at Array.map (<anonymous>) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'node:internal/test_runner/harness:129\n' +
' throw err;\n' +
' ^\n' +
'\n' +
'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
'+ actual - expected\n' +
'\n' +
"+ 'node:internal/test_runner/test'\n" +
"- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
'\n' +
'...',
expected: '',
operator: 'strictEqual',
diff: 'simple'
}
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-03-1521d752af73-slim/test/parallel/test-runner-reporters.js
|
|
aarch64-linux: with shared libraries:
test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:4'... 2922 more characters
- 'test at test/fixtures/test-runne'... 2969 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with only a name provided (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'﹣ <anonymous> (*ms) # SKIP\n' +
'﹣ test with a name and options provided (*ms) # SKIP\n' +
'﹣ f
|
|
aarch64-linux: with shared libraries:
test/test-runner/test-output-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
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:334:11\n' +
'✖ sync throw fails at first (*ms)\n' +
+ ' Error: thrown from subtest sync throw fails at first'... 2549 more characters
- ' Error: thrown from subtest s'... 2596 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with only
|
|
aarch64-linux: with shared libraries:
test/test-runner/test-output-output-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11601 more characters
- '# Subtest: cal'... 11708 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output-cli.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node-in
|
|
aarch64-linux: with shared libraries:
test/test-runner/test-output-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11252 more characters
- '# Subtest: cal'... 11359 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node-intern
|
|
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' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' +
'✖ 1 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' +
'✖ 2 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' +
'✖ 1 (*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:197:11)\n' +
- ' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\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 node:internal/test_runner/test:381:49\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' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' +
'✖ 2 (*ms)\n' +
' Error: afterEach\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\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' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
'# Subtest: t.before throws - no subtests\n' +
+ 'not ok 14 - t.before throws - no subtests\n' +
+ ' ---\n' +
+ ' duratio'... 8766 more characters
- 'not o'... 9088 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-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'
|
|
aarch64-linux: with shared libraries:
test/test-runner/test-output-default-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-default-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at node:internal/test_runner/test:381:49\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n',
expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtur
|
|
aarch64-linux: with shared libraries:
test/test-runner/test-output-abort.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: promise timeout signal\n' +
' # Subtest: ok 1\n' +
' ok 1 - ok 1\n' +
' ---\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" +
" failureType: 'testAborted'\n" +
" error: '
|
|
aarch64-darwin: with shared libraries:
test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:4'... 2922 more characters
- 'test at test/fixtures/test-runne'... 2969 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with only a name provided (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'﹣ <anonymous> (*ms) # SKIP\n' +
'﹣ test with a name and options provided (*ms) # SKIP\n' +
'��
|
|
aarch64-darwin: with shared libraries:
test/test-runner/test-output-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
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:334:11\n' +
'✖ sync throw fails at first (*ms)\n' +
+ ' Error: thrown from subtest sync throw fails at first'... 2549 more characters
- ' Error: thrown from subtest s'... 2596 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with o
|
|
aarch64-darwin: with shared libraries:
test/test-runner/test-output-output-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11601 more characters
- '# Subtest: cal'... 11708 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output-cli.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node
|
|
aarch64-darwin: with shared libraries:
test/test-runner/test-output-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11252 more characters
- '# Subtest: cal'... 11359 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node-int
|
|
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' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' +
'✖ 1 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' +
'✖ 2 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' +
'✖ 1 (*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:197:11)\n' +
- ' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\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 node:internal/test_runner/test:381:49\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' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' +
'✖ 2 (*ms)\n' +
' Error: afterEach\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
-
|
|
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' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
'# Subtest: t.before throws - no subtests\n' +
+ 'not ok 14 - t.before throws - no subtests\n' +
+ ' ---\n' +
+ ' duratio'... 8766 more characters
- 'not o'... 9088 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-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: *\
|
|
aarch64-darwin: with shared libraries:
test/test-runner/test-output-default-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-default-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at node:internal/test_runner/test:381:49\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n',
expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fix
|
|
aarch64-darwin: with shared libraries:
test/test-runner/test-output-abort.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: promise timeout signal\n' +
' # Subtest: ok 1\n' +
' ok 1 - ok 1\n' +
' ---\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" +
" failureType: 'testAborted'\n" +
" error: '
|
|
aarch64-darwin: with shared libraries:
test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout ---
Test failure: 'test should pass on third rerun'
Location: test/parallel/test-runner-test-rerun-failures.js:78:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:87:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [Array],
expected: [Array],
operator: 'deepStrictEqual',
diff: 'simple'
}
Test failure: 'test should pass on third rerun with `--test`'
Location: test/parallel/test-runner-test-rerun-failures.js:107:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:116:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async Test.processPendingSubtests (node:internal/t
|
|
aarch64-darwin: with shared libraries:
test/parallel/test-runner-reporters.js#L114
--- stdout ---
Test failure: 'should support a 'js' file as a custom reporter'
Location: test/parallel/test-runner-reporters.js:109:5
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
+ 'node:internal/test_runner/harness:129\n' +
+ ' throw err;\n' +
+ ' ^\n' +
+ '\n' +
+ 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
+ '+ actual - expected\n' +
+ '\n' +
+ "+ 'node:internal/test_runner/test'\n" +
+ "- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
+ '\n' +
+ ' at customReporter (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
+ ' at async nextAsync (node:internal/streams/from:182:33)\n' +
+ "Emitted 'error' event on Duplex instance at:\n" +
+ ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' +
+ ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' +
+ ' generatedMessage: true,\n' +
+ " code: 'ERR_ASSERTION',\n" +
+ " actual: 'node:internal/test_runner/test',\n" +
+ " expected: '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js',\n" +
+ " operator: 'strictEqual',\n" +
+ " diff: 'simple'\n" +
+ '}\n' +
+ '\n' +
+ 'Node.js v26.0.0-pre\n'
- ''
at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-reporters.js:114:14)
at Test.runInAsyncScope (node:async_hooks:226:14)
at Test.run (node:internal/test_runner/test:1210:25)
at Test.start (node:internal/test_runner/test:1105:17)
at node:internal/test_runner/test:1626:71
at node:internal/per_context/primordials:466:82
at new Promise (<anonymous>)
at new SafePromise (node:internal/per_context/primordials:435:3)
at node:internal/per_context/primordials:466:9
at Array.map (<anonymous>) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'node:internal/test_runner/harness:129\n' +
' throw err;\n' +
' ^\n' +
'\n' +
'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
'+ actual - expected\n' +
'\n' +
"+ 'node:internal/test_runner/test'\n" +
"- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
'\n' +
'...',
expected: '',
operator: 'strictEqual',
diff: 'simple'
}
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-03-1521d752af73-slim/test/parallel/test-runner-reporters.js
|
|
x86_64-linux: with shared libraries:
test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout ---
Test failure: 'test should pass on third rerun'
Location: test/parallel/test-runner-test-rerun-failures.js:78:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:87:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [Array],
expected: [Array],
operator: 'deepStrictEqual',
diff: 'simple'
}
Test failure: 'test should pass on third rerun with `--test`'
Location: test/parallel/test-runner-test-rerun-failures.js:107:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:116:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async Test.processPendingSubtests (node:internal/tes
|
|
x86_64-linux: with shared libraries:
test/parallel/test-runner-reporters.js#L114
--- stdout ---
Test failure: 'should support a 'js' file as a custom reporter'
Location: test/parallel/test-runner-reporters.js:109:5
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
+ 'node:internal/test_runner/harness:129\n' +
+ ' throw err;\n' +
+ ' ^\n' +
+ '\n' +
+ 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
+ '+ actual - expected\n' +
+ '\n' +
+ "+ 'node:internal/test_runner/test'\n" +
+ "- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
+ '\n' +
+ ' at customReporter (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
+ ' at async nextAsync (node:internal/streams/from:182:33)\n' +
+ "Emitted 'error' event on Duplex instance at:\n" +
+ ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' +
+ ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' +
+ ' generatedMessage: true,\n' +
+ " code: 'ERR_ASSERTION',\n" +
+ " actual: 'node:internal/test_runner/test',\n" +
+ " expected: '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js',\n" +
+ " operator: 'strictEqual',\n" +
+ " diff: 'simple'\n" +
+ '}\n' +
+ '\n' +
+ 'Node.js v26.0.0-pre\n'
- ''
at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-reporters.js:114:14)
at Test.runInAsyncScope (node:async_hooks:226:14)
at Test.run (node:internal/test_runner/test:1210:25)
at Test.start (node:internal/test_runner/test:1105:17)
at node:internal/test_runner/test:1626:71
at node:internal/per_context/primordials:466:82
at new Promise (<anonymous>)
at new SafePromise (node:internal/per_context/primordials:435:3)
at node:internal/per_context/primordials:466:9
at Array.map (<anonymous>) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'node:internal/test_runner/harness:129\n' +
' throw err;\n' +
' ^\n' +
'\n' +
'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
'+ actual - expected\n' +
'\n' +
"+ 'node:internal/test_runner/test'\n" +
"- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
'\n' +
'...',
expected: '',
operator: 'strictEqual',
diff: 'simple'
}
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-03-1521d752af73-slim/test/parallel/test-runner-reporters.js
|
|
x86_64-linux: with shared libraries:
test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:4'... 2922 more characters
- 'test at test/fixtures/test-runne'... 2969 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with only a name provided (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'﹣ <anonymous> (*ms) # SKIP\n' +
'﹣ test with a name and options provided (*ms) # SKIP\n' +
'﹣ f
|
|
x86_64-linux: with shared libraries:
test/test-runner/test-output-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
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:334:11\n' +
'✖ sync throw fails at first (*ms)\n' +
+ ' Error: thrown from subtest sync throw fails at first'... 2549 more characters
- ' Error: thrown from subtest s'... 2596 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with only
|
|
x86_64-linux: with shared libraries:
test/test-runner/test-output-output-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11601 more characters
- '# Subtest: cal'... 11708 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output-cli.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node-in
|
|
x86_64-linux: with shared libraries:
test/test-runner/test-output-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11252 more characters
- '# Subtest: cal'... 11359 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node-intern
|
|
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' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' +
'✖ 1 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' +
'✖ 2 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' +
'✖ 1 (*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:197:11)\n' +
- ' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\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 node:internal/test_runner/test:381:49\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' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' +
'✖ 2 (*ms)\n' +
' Error: afterEach\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\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' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
'# Subtest: t.before throws - no subtests\n' +
+ 'not ok 14 - t.before throws - no subtests\n' +
+ ' ---\n' +
+ ' duratio'... 8766 more characters
- 'not o'... 9088 more characters
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-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'
|
|
x86_64-linux: with shared libraries:
test/test-runner/test-output-default-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-default-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at node:internal/test_runner/test:381:49\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n',
expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtur
|
|
x86_64-linux: with shared libraries:
test/test-runner/test-output-abort.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: promise timeout signal\n' +
' # Subtest: ok 1\n' +
' ok 1 - ok 1\n' +
' ---\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" +
" failureType: 'testAborted'\n" +
" error: '
|
|
x86_64-darwin: with shared libraries:
test/test-runner/test-output-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
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:334:11\n' +
'✖ sync throw fails at first (*ms)\n' +
+ ' Error: thrown from subtest sync throw fails at first'... 2549 more characters
- ' Error: thrown from subtest s'... 2596 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with o
|
|
x86_64-darwin: with shared libraries:
test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/output.js:125:11\n' +
'✖ +sync throw fail (*ms)\n' +
' Error: thrown from subtest sync throw fail\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:4'... 2922 more characters
- 'test at test/fixtures/test-runne'... 2969 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' +
'✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' +
'✔ sync todo with expect fail (*ms) # TODO\n' +
'﹣ sync skip expect fail (*ms) # SKIP\n' +
'✔ sync pass todo (*ms) # TODO\n' +
'✔ sync pass todo with message (*ms) # this is a passing todo\n' +
'⚠ sync fail todo (*ms) # TODO\n' +
'⚠ sync fail todo with message (*ms) # this is a failing todo\n' +
'﹣ sync skip pass (*ms) # SKIP\n' +
'﹣ sync skip pass with message (*ms) # this is skipped\n' +
'✔ sync pass (*ms)\n' +
'ℹ this test should pass\n' +
'✖ sync throw fail (*ms)\n' +
'﹣ async skip pass (*ms) # SKIP\n' +
'✔ async pass (*ms)\n' +
'✖ async throw fail (*ms)\n' +
'﹣ async skip fail (*ms) # SKIP\n' +
'✖ async assertion fail (*ms)\n' +
'✔ resolve pass (*ms)\n' +
'✖ reject fail (*ms)\n' +
'✔ unhandled rejection - passes but warns (*ms)\n' +
'✔ async unhandled rejection - passes but warns (*ms)\n' +
'✔ immediate throw - passes but warns (*ms)\n' +
'✔ immediate reject - passes but warns (*ms)\n' +
'✔ immediate resolve pass (*ms)\n' +
'▶ subtest sync throw fail\n' +
' ✖ +sync throw fail (*ms)\n' +
' ℹ this subtest should make its parent test fail\n' +
'✖ subtest sync throw fail (*ms)\n' +
'✖ sync throw non-error fail (*ms)\n' +
'▶ level 0a\n' +
' ✔ level 1a (*ms)\n' +
' ✔ level 1b (*ms)\n' +
' ✔ level 1c (*ms)\n' +
' ✔ level 1d (*ms)\n' +
'✔ level 0a (*ms)\n' +
'▶ top level\n' +
' ✔ +long running (*ms)\n' +
' ▶ +short running\n' +
' ✔ ++short running (*ms)\n' +
' ✔ +short running (*ms)\n' +
'✔ top level (*ms)\n' +
'✔ invalid subtest - pass but subtest fails (*ms)\n' +
'﹣ sync skip option (*ms) # SKIP\n' +
'﹣ sync skip option with message (*ms) # this is skipped\n' +
'✖ sync skip option is false fail (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ functionOnly (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'✔ test with only a name provided (*ms)\n' +
'✔ <anonymous> (*ms)\n' +
'﹣ <anonymous> (*ms) # SKIP\n' +
'﹣ test with a name and options provided (*ms) # SKIP\n' +
'��
|
|
x86_64-darwin: with shared libraries:
test/test-runner/test-output-output-cli.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11601 more characters
- '# Subtest: cal'... 11708 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output-cli.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node
|
|
x86_64-darwin: with shared libraries:
test/test-runner/test-output-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from subtest sync throw fail'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' +
...
' ...\n' +
+ '# Subtest: callback t is this in test\n' +
+ 'ok '... 11252 more characters
- '# Subtest: cal'... 11359 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'TAP version 13\n' +
'# Subtest: sync expect fail (method)\n' +
'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync expect fail (options)\n' +
'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (method)\n' +
'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: async expect fail (options)\n' +
'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync todo with expect fail\n' +
'ok 5 - sync todo with expect fail # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync skip expect fail\n' +
'ok 6 - sync skip expect fail # SKIP\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo\n' +
'ok 7 - sync pass todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync pass todo with message\n' +
'ok 8 - sync pass todo with message # TODO this is a passing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
' ...\n' +
'# Subtest: sync fail todo\n' +
'not ok 9 - sync fail todo # TODO\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' +
' <node-internal-frames>\n' +
' ...\n' +
'# Subtest: sync fail todo with message\n' +
'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' +
' ---\n' +
' duration_ms: *\n' +
" type: 'test'\n" +
" location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" +
" failureType: 'testCodeFailure'\n" +
" error: 'thrown from sync fail todo with message'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' +
' <node-int
|
|
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' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' +
'✖ 1 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' +
'✖ 2 (*ms)\n' +
' Error: before\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' +
'✖ 1 (*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:197:11)\n' +
- ' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\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 node:internal/test_runner/test:381:49\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' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' +
'✖ 2 (*ms)\n' +
' Error: afterEach\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' +
' at <node-internal-frames>\n' +
' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' +
' at <node-internal-frames>\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' +
'✖ 1 (*ms)\n' +
' Error: test\n' +
' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' +
' at <node-internal-frames>\n' +
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
-
|
|
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' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" +
" failureType: 'hookFailed'\n" +
" error: 'before'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' stack: |-\n' +
' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' +
...
'# Subtest: t.before throws - no subtests\n' +
+ 'not ok 14 - t.before throws - no subtests\n' +
+ ' ---\n' +
+ ' duratio'... 8766 more characters
- 'not o'... 9088 more characters
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-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: *\
|
|
x86_64-darwin: with shared libraries:
test/test-runner/test-output-default-output.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
...
'\n' +
+ 'test at node:internal/test_runner/test:381:49\n' +
- 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:173:12)
at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/common/assertSnapshot.js:208:3)
at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/test-runner/test-output-default-output.mjs:7:1 {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at node:internal/test_runner/test:381:49\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n',
expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
'[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' +
'▶ parent\n' +
' [31m✖ should fail [90m(*ms)[39m[39m\n' +
' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' +
'[31m✖ parent [90m(*ms)[39m[39m\n' +
'[34mℹ tests 6[39m\n' +
'[34mℹ suites 0[39m\n' +
'[34mℹ pass 2[39m\n' +
'[34mℹ fail 3[39m\n' +
'[34mℹ cancelled 0[39m\n' +
'[34mℹ skipped 1[39m\n' +
'[34mℹ todo 0[39m\n' +
'[34mℹ duration_ms *[39m\n' +
'\n' +
'[31m✖ failing tests:[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:10:1\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' +
' [90m at <node-internal-frames>[39m\n' +
'\n' +
'test at test/fixtures/test-runner/output/default_output.js:13:5\n' +
'[31m✖ should fail [90m(*ms)[39m[39m\n' +
' Error: fail\n' +
' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fix
|
|
x86_64-darwin: with shared libraries:
test/test-runner/test-output-abort.mjs#L0
--- stderr ---
node:internal/modules/run_main:107
triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
... Skipped lines
'TAP version 13\n' +
'# Subtest: promise timeout signal\n' +
' # Subtest: ok 1\n' +
' ok 1 - ok 1\n' +
' ---\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 2\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" +
" failureType: 'cancelledByParent'\n" +
" error: 'test did not finish before its parent and was cancelled'\n" +
" code: 'ERR_TEST_FAILURE'\n" +
' ...\n' +
' # Subtest: not ok 3\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" +
" failureType: 'testAborted'\n" +
" error: 'This operation was aborted'\n" +
' code: 20\n' +
" name: 'AbortError'\n" +
' stack: |-\n' +
...
" type: 'test'\n" +
+ " location: 'node:internal/test_runner/test:381:49'\n" +
- " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" +
" failureType: 'testAborted'\n" +
" error: '
|
|
x86_64-darwin: with shared libraries:
test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout ---
Test failure: 'test should pass on third rerun'
Location: test/parallel/test-runner-test-rerun-failures.js:78:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:87:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [Array],
expected: [Array],
operator: 'deepStrictEqual',
diff: 'simple'
}
Test failure: 'test should pass on third rerun with `--test`'
Location: test/parallel/test-runner-test-rerun-failures.js:107:1
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
... Skipped lines
[
{
+ 'node:internal/test_runner/test:381:49': {
+ name: '2 levels deep',
- 'test/fixtures/test-runner/rerun.js:17:3': {
- name: 'ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
+ 'node:internal/test_runner/test:381:49:(1)': {
- 'test/fixtures/test-runner/rerun.js:29:13': {
name: 'nested',
passed_on_attempt: 0
},
+ 'test/fixtures/test-runner/rerun.js:17:3': {
+ name: 'ambiguous (expectedAttempts=0)',
- 'test/fixtures/test-runner/rerun.js:30:16': {
- name: '2 levels deep',
passed_on_attempt: 0
},
- 'test/fixtures/test-runner/rerun.js:30:16:(1)': {
- name: '2 levels deep',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13': {
- name: 'ok',
- passed_on_attempt: 0
- },
- 'test/fixtures/test-runner/rerun.js:35:13:(1)': {
- name: 'ok',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:39:1': {
name: 'nested ambiguous (expectedAttempts=0)',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:43:1': {
...
},
- 'test/fixtures/test-runner/rerun.js:45:13': {
- name: 'nested',
- passed_on_attempt: 0
- },
'test/fixtures/test-runner/rerun.js:47:3': {
name: 'a',
passed_on_attempt: 0
},
'test/fixtures/test-runner/rerun.js:9:1': {
at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-test-rerun-failures.js:116:10)
at async Test.run (node:internal/test_runner/test:1217:7)
at async Test.processPendingSubtests (node:internal/t
|
|
x86_64-darwin: with shared libraries:
test/parallel/test-runner-reporters.js#L114
--- stdout ---
Test failure: 'should support a 'js' file as a custom reporter'
Location: test/parallel/test-runner-reporters.js:109:5
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
+ 'node:internal/test_runner/harness:129\n' +
+ ' throw err;\n' +
+ ' ^\n' +
+ '\n' +
+ 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
+ '+ actual - expected\n' +
+ '\n' +
+ "+ 'node:internal/test_runner/test'\n" +
+ "- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
+ '\n' +
+ ' at customReporter (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
+ ' at async nextAsync (node:internal/streams/from:182:33)\n' +
+ "Emitted 'error' event on Duplex instance at:\n" +
+ ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' +
+ ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' +
+ ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' +
+ ' generatedMessage: true,\n' +
+ " code: 'ERR_ASSERTION',\n" +
+ " actual: 'node:internal/test_runner/test',\n" +
+ " expected: '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js',\n" +
+ " operator: 'strictEqual',\n" +
+ " diff: 'simple'\n" +
+ '}\n' +
+ '\n' +
+ 'Node.js v26.0.0-pre\n'
- ''
at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/parallel/test-runner-reporters.js:114:14)
at Test.runInAsyncScope (node:async_hooks:226:14)
at Test.run (node:internal/test_runner/test:1210:25)
at Test.start (node:internal/test_runner/test:1105:17)
at node:internal/test_runner/test:1626:71
at node:internal/per_context/primordials:466:82
at new Promise (<anonymous>)
at new SafePromise (node:internal/per_context/primordials:435:3)
at node:internal/per_context/primordials:466:9
at Array.map (<anonymous>) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 'node:internal/test_runner/harness:129\n' +
' throw err;\n' +
' ^\n' +
'\n' +
'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' +
'+ actual - expected\n' +
'\n' +
"+ 'node:internal/test_runner/test'\n" +
"- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-1521d752af73-slim/test/fixtures/test-runner/reporters.js'\n" +
'\n' +
'...',
expected: '',
operator: 'strictEqual',
diff: 'simple'
}
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-03-1521d752af73-slim/test/parallel/test-runner-reporters.js
|
|
aarch64-darwin: with shared libraries
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
x86_64-linux: with shared libraries
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
x86_64-darwin: with shared libraries
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
tarballs
|
48.3 MB |
sha256:8847a093ac609ebe781c359fb2b4123797ad66611352e19f040c64fc4e341ae1
|
|