@@ -191,4 +191,17 @@ describe('node:test reporters', { concurrency: true }, () => {
|
191 | 191 | assert.match(fileConent, /ℹ skipped 0/); |
192 | 192 | assert.match(fileConent, /ℹ todo 0/); |
193 | 193 | }); |
| 194 | + |
| 195 | +it('should correctly report pass/fail for junit reporter using reporters.js', async () => { |
| 196 | +const file = tmpdir.resolve(`${tmpFiles++}.xml`); |
| 197 | +const child = spawnSync(process.execPath, |
| 198 | +['--test', '--test-reporter', 'junit', '--test-reporter-destination', file, testFile]); |
| 199 | +assert.strictEqual(child.stderr.toString(), ''); |
| 200 | +assert.strictEqual(child.stdout.toString(), ''); |
| 201 | +const fileContents = fs.readFileSync(file, 'utf8'); |
| 202 | +assert.match(fileContents, /<testsuite .*name="nested".*tests="2".*failures="1".*skipped="0".*>/); |
| 203 | +assert.match(fileContents, /<testcase .*name="failing".*>\s*<failure .*type="testCodeFailure".*message="error".*>/); |
| 204 | +assert.match(fileContents, /<testcase .*name="ok".*classname="test".*\/>/); |
| 205 | +assert.match(fileContents, /<testcase .*name="top level".*classname="test".*\/>/); |
| 206 | +}); |
194 | 207 | }); |