mirror of
https://github.com/nodejs/node.git
synced 2024-11-24 20:29:23 +01:00
e32521a7b9
This commit updates the test runner to explicitly close and flush all destination file streams when the --test-force-exit flag is used. Fixes: https://github.com/nodejs/node/issues/54327 PR-URL: https://github.com/nodejs/node/pull/55099 Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com>
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
'use strict';
|
|
require('../common');
|
|
const fixtures = require('../common/fixtures');
|
|
const tmpdir = require('../common/tmpdir');
|
|
const { match, strictEqual } = require('node:assert');
|
|
const { spawnSync } = require('node:child_process');
|
|
const { readFileSync } = require('node:fs');
|
|
const { test } = require('node:test');
|
|
|
|
function runWithReporter(reporter) {
|
|
const destination = tmpdir.resolve(`${reporter}.out`);
|
|
const args = [
|
|
'--test-force-exit',
|
|
`--test-reporter=${reporter}`,
|
|
`--test-reporter-destination=${destination}`,
|
|
fixtures.path('test-runner', 'reporters.js'),
|
|
];
|
|
const child = spawnSync(process.execPath, args);
|
|
strictEqual(child.stdout.toString(), '');
|
|
strictEqual(child.stderr.toString(), '');
|
|
strictEqual(child.status, 1);
|
|
return destination;
|
|
}
|
|
|
|
tmpdir.refresh();
|
|
|
|
test('junit reporter', () => {
|
|
const output = readFileSync(runWithReporter('junit'), 'utf8');
|
|
match(output, /<!-- tests 4 -->/);
|
|
match(output, /<!-- pass 2 -->/);
|
|
match(output, /<!-- fail 2 -->/);
|
|
match(output, /<!-- duration_ms/);
|
|
match(output, /<\/testsuites>/);
|
|
});
|
|
|
|
test('spec reporter', () => {
|
|
const output = readFileSync(runWithReporter('spec'), 'utf8');
|
|
match(output, /tests 4/);
|
|
match(output, /pass 2/);
|
|
match(output, /fail 2/);
|
|
});
|
|
|
|
test('tap reporter', () => {
|
|
const output = readFileSync(runWithReporter('tap'), 'utf8');
|
|
match(output, /# tests 4/);
|
|
match(output, /# pass 2/);
|
|
match(output, /# fail 2/);
|
|
match(output, /# duration_ms/);
|
|
});
|