Skip to content

Commit c997937

Browse files
authored
fix(vitest): update json reporter output (#6064)
1 parent af2b813 commit c997937

File tree

4 files changed

+40
-38
lines changed

4 files changed

+40
-38
lines changed

docs/guide/reporters.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -284,15 +284,15 @@ Example of a JSON report:
284284

285285
```json
286286
{
287-
"numTotalTestSuites": 1,
288-
"numPassedTestSuites": 0,
287+
"numTotalTestSuites": 4,
288+
"numPassedTestSuites": 2,
289289
"numFailedTestSuites": 1,
290-
"numPendingTestSuites": 0,
291-
"numTotalTests": 1,
292-
"numPassedTests": 0,
290+
"numPendingTestSuites": 1,
291+
"numTotalTests": 4,
292+
"numPassedTests": 1,
293293
"numFailedTests": 1,
294-
"numPendingTests": 0,
295-
"numTodoTests": 0,
294+
"numPendingTests": 1,
295+
"numTodoTests": 1,
296296
"startTime": 1697737019307,
297297
"success": false,
298298
"testResults": [

packages/vitest/src/node/reporters/json.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,19 @@ export class JsonReporter implements Reporter {
9191
const numTotalTestSuites = suites.length
9292
const tests = getTests(files)
9393
const numTotalTests = tests.length
94-
const numFailedTestSuites = suites.filter(s => s.result?.errors).length
95-
const numPassedTestSuites = numTotalTestSuites - numFailedTestSuites
94+
95+
const numFailedTestSuites = suites.filter(s => s.result?.state === 'fail').length
9696
const numPendingTestSuites = suites.filter(
97-
s => s.result?.state === 'run',
97+
s => s.result?.state === 'run' || s.mode === 'todo',
9898
).length
99+
const numPassedTestSuites = numTotalTestSuites - numFailedTestSuites - numPendingTestSuites
100+
99101
const numFailedTests = tests.filter(
100102
t => t.result?.state === 'fail',
101103
).length
102-
const numPassedTests = numTotalTests - numFailedTests
104+
const numPassedTests = tests.filter(t => t.result?.state === 'pass').length
103105
const numPendingTests = tests.filter(
104-
t => t.result?.state === 'run',
106+
t => t.result?.state === 'run' || t.mode === 'skip' || t.result?.state === 'skip',
105107
).length
106108
const numTodoTests = tests.filter(t => t.mode === 'todo').length
107109
const testResults: Array<JsonTestResult> = []

test/reporters/tests/__snapshots__/reporters.spec.ts.snap

+24-24
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ exports[`JUnit reporter with outputFile object in non-existing directory 2`] = `
6464
6565
exports[`json reporter (no outputFile entry) 1`] = `
6666
{
67-
"numFailedTestSuites": 0,
67+
"numFailedTestSuites": 1,
6868
"numFailedTests": 1,
69-
"numPassedTestSuites": 2,
70-
"numPassedTests": 8,
69+
"numPassedTestSuites": 1,
70+
"numPassedTests": 6,
7171
"numPendingTestSuites": 0,
72-
"numPendingTests": 0,
72+
"numPendingTests": 1,
7373
"numTodoTests": 1,
7474
"numTotalTestSuites": 2,
7575
"numTotalTests": 9,
@@ -208,12 +208,12 @@ exports[`json reporter (no outputFile entry) 1`] = `
208208
209209
exports[`json reporter 1`] = `
210210
{
211-
"numFailedTestSuites": 0,
211+
"numFailedTestSuites": 1,
212212
"numFailedTests": 1,
213-
"numPassedTestSuites": 2,
214-
"numPassedTests": 8,
213+
"numPassedTestSuites": 1,
214+
"numPassedTests": 6,
215215
"numPendingTestSuites": 0,
216-
"numPendingTests": 0,
216+
"numPendingTests": 1,
217217
"numTodoTests": 1,
218218
"numTotalTestSuites": 2,
219219
"numTotalTests": 9,
@@ -357,12 +357,12 @@ exports[`json reporter with outputFile 1`] = `
357357
358358
exports[`json reporter with outputFile 2`] = `
359359
{
360-
"numFailedTestSuites": 0,
360+
"numFailedTestSuites": 1,
361361
"numFailedTests": 1,
362-
"numPassedTestSuites": 2,
363-
"numPassedTests": 8,
362+
"numPassedTestSuites": 1,
363+
"numPassedTests": 6,
364364
"numPendingTestSuites": 0,
365-
"numPendingTests": 0,
365+
"numPendingTests": 1,
366366
"numTodoTests": 1,
367367
"numTotalTestSuites": 2,
368368
"numTotalTests": 9,
@@ -506,12 +506,12 @@ exports[`json reporter with outputFile in non-existing directory 1`] = `
506506
507507
exports[`json reporter with outputFile in non-existing directory 2`] = `
508508
{
509-
"numFailedTestSuites": 0,
509+
"numFailedTestSuites": 1,
510510
"numFailedTests": 1,
511-
"numPassedTestSuites": 2,
512-
"numPassedTests": 8,
511+
"numPassedTestSuites": 1,
512+
"numPassedTests": 6,
513513
"numPendingTestSuites": 0,
514-
"numPendingTests": 0,
514+
"numPendingTests": 1,
515515
"numTodoTests": 1,
516516
"numTotalTestSuites": 2,
517517
"numTotalTests": 9,
@@ -655,12 +655,12 @@ exports[`json reporter with outputFile object 1`] = `
655655
656656
exports[`json reporter with outputFile object 2`] = `
657657
{
658-
"numFailedTestSuites": 0,
658+
"numFailedTestSuites": 1,
659659
"numFailedTests": 1,
660-
"numPassedTestSuites": 2,
661-
"numPassedTests": 8,
660+
"numPassedTestSuites": 1,
661+
"numPassedTests": 6,
662662
"numPendingTestSuites": 0,
663-
"numPendingTests": 0,
663+
"numPendingTests": 1,
664664
"numTodoTests": 1,
665665
"numTotalTestSuites": 2,
666666
"numTotalTests": 9,
@@ -804,12 +804,12 @@ exports[`json reporter with outputFile object in non-existing directory 1`] = `
804804
805805
exports[`json reporter with outputFile object in non-existing directory 2`] = `
806806
{
807-
"numFailedTestSuites": 0,
807+
"numFailedTestSuites": 1,
808808
"numFailedTests": 1,
809-
"numPassedTestSuites": 2,
810-
"numPassedTests": 8,
809+
"numPassedTestSuites": 1,
810+
"numPassedTests": 6,
811811
"numPendingTestSuites": 0,
812-
"numPendingTests": 0,
812+
"numPendingTests": 1,
813813
"numTodoTests": 1,
814814
"numTotalTestSuites": 2,
815815
"numTotalTests": 9,

test/reporters/tests/merge-reports.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,9 @@ test('merge reports', async () => {
129129

130130
expect(json).toMatchInlineSnapshot(`
131131
{
132-
"numFailedTestSuites": 0,
132+
"numFailedTestSuites": 2,
133133
"numFailedTests": 2,
134-
"numPassedTestSuites": 3,
134+
"numPassedTestSuites": 1,
135135
"numPassedTests": 3,
136136
"numPendingTestSuites": 0,
137137
"numPendingTests": 0,

0 commit comments

Comments
 (0)