test_runner: default to spec reporter when on TTY environment

PR-URL: https://github.com/nodejs/node/pull/46969
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
Moshe Atlow 2023-03-06 12:20:51 +02:00
parent 629047da09
commit 9960c36f3a
No known key found for this signature in database
GPG Key ID: CB1159A696865149
4 changed files with 36 additions and 3 deletions

View File

@ -522,8 +522,7 @@ flags for the test runner to use a specific reporter.
The following built-reporters are supported:
* `tap`
The `tap` reporter is the default reporter used by the test runner. It outputs
the test results in the [TAP][] format.
The `tap` reporter outputs the test results in the [TAP][] format.
* `spec`
The `spec` reporter outputs the test results in a human-readable format.
@ -533,6 +532,9 @@ The following built-reporters are supported:
where each passing test is represented by a `.`,
and each failing test is represented by a `X`.
When `stdout` is a [TTY][], the `spec` reporter is used by default.
Otherwise, the `tap` reporter is used by default.
### Custom reporters
[`--test-reporter`][] can be used to specify a path to custom reporter.
@ -1770,6 +1772,7 @@ added:
aborted.
[TAP]: https://testanything.org/
[TTY]: tty.md
[`--experimental-test-coverage`]: cli.md#--experimental-test-coverage
[`--import`]: cli.md#--importmodule
[`--test-name-pattern`]: cli.md#--test-name-pattern

View File

@ -98,7 +98,7 @@ const kBuiltinReporters = new SafeMap([
['tap', 'internal/test_runner/reporter/tap'],
]);
const kDefaultReporter = 'tap';
const kDefaultReporter = process.stdout.isTTY ? 'spec' : 'tap';
const kDefaultDestination = 'stdout';
function tryBuiltinReporter(name) {

View File

@ -0,0 +1,11 @@
'use strict';
process.env.FORCE_COLOR = '1';
delete process.env.NODE_DISABLE_COLORS;
delete process.env.NO_COLOR;
require('../common');
const test = require('node:test');
test('should pass', () => {});
test('should fail', () => { throw new Error('fail'); });
test('should skip', { skip: true }, () => {});

View File

@ -0,0 +1,19 @@
[32m* should pass [90m(*ms)[39m[39m
[31m* should fail [90m(*ms)[39m
Error: fail
at * [90m(*)[39m
[90m at *[39m
[90m at *[39m
[90m at *[39m
[90m at *[39m
[90m at *[39m
[90m at *[39m
**
[90m* should skip [90m(*ms)[39m # SKIP[39m
[34m* tests 3[39m
[34m* pass 1[39m
[34m* fail 1[39m
[34m* cancelled 0[39m
[34m* skipped 1[39m
[34m* todo 0[39m
[34m* duration_ms *[39m