Skip to content

Commit 9960c36

Browse files
committed
test_runner: default to spec reporter when on TTY environment
PR-URL: #46969 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 629047d commit 9960c36

File tree

4 files changed

+36
-3
lines changed

4 files changed

+36
-3
lines changed

doc/api/test.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -522,8 +522,7 @@ flags for the test runner to use a specific reporter.
522522
The following built-reporters are supported:
523523

524524
* `tap`
525-
The `tap` reporter is the default reporter used by the test runner. It outputs
526-
the test results in the [TAP][] format.
525+
The `tap` reporter outputs the test results in the [TAP][] format.
527526

528527
* `spec`
529528
The `spec` reporter outputs the test results in a human-readable format.
@@ -533,6 +532,9 @@ The following built-reporters are supported:
533532
where each passing test is represented by a `.`,
534533
and each failing test is represented by a `X`.
535534

535+
When `stdout` is a [TTY][], the `spec` reporter is used by default.
536+
Otherwise, the `tap` reporter is used by default.
537+
536538
### Custom reporters
537539

538540
[`--test-reporter`][] can be used to specify a path to custom reporter.
@@ -1770,6 +1772,7 @@ added:
17701772
aborted.
17711773

17721774
[TAP]: https://testanything.org/
1775+
[TTY]: tty.md
17731776
[`--experimental-test-coverage`]: cli.md#--experimental-test-coverage
17741777
[`--import`]: cli.md#--importmodule
17751778
[`--test-name-pattern`]: cli.md#--test-name-pattern

lib/internal/test_runner/utils.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const kBuiltinReporters = new SafeMap([
9898
['tap', 'internal/test_runner/reporter/tap'],
9999
]);
100100

101-
const kDefaultReporter = 'tap';
101+
const kDefaultReporter = process.stdout.isTTY ? 'spec' : 'tap';
102102
const kDefaultDestination = 'stdout';
103103

104104
function tryBuiltinReporter(name) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
'use strict';
2+
process.env.FORCE_COLOR = '1';
3+
delete process.env.NODE_DISABLE_COLORS;
4+
delete process.env.NO_COLOR;
5+
6+
require('../common');
7+
const test = require('node:test');
8+
9+
test('should pass', () => {});
10+
test('should fail', () => { throw new Error('fail'); });
11+
test('should skip', { skip: true }, () => {});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[32m* should pass [90m(*ms)[39m[39m
2+
[31m* should fail [90m(*ms)[39m
3+
Error: fail
4+
at * [90m(*)[39m
5+
[90m at *[39m
6+
[90m at *[39m
7+
[90m at *[39m
8+
[90m at *[39m
9+
[90m at *[39m
10+
[90m at *[39m
11+
**
12+
[90m* should skip [90m(*ms)[39m # SKIP[39m
13+
[34m* tests 3[39m
14+
[34m* pass 1[39m
15+
[34m* fail 1[39m
16+
[34m* cancelled 0[39m
17+
[34m* skipped 1[39m
18+
[34m* todo 0[39m
19+
[34m* duration_ms *[39m

0 commit comments

Comments
 (0)