mirror of
https://github.com/dorny/test-reporter.git
synced 2025-12-17 14:57:09 +01:00
Report jest-junit testsuite errors as failures
Test errors are different (represented differently in the JUnit XML output from jest-junit) to test _failures_. Failures are tests which ran and failed, errors are for tests/test suites which did not even run because the test code itself didn't build or didn't execute correctly. jest-junit has an option to enable reporting of test suite errors, but test-reporter then interprets these as successful tests.
This commit is contained in:
parent
0d00bb14cb
commit
fe8fe90f0e
9 changed files with 286 additions and 105 deletions
19
__tests__/__outputs__/jest-test-errors-results.md
Normal file
19
__tests__/__outputs__/jest-test-errors-results.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||

|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/test-errors/jest/jest-test-results.xml</a>
|
||||
**2** tests were completed in **646ms** with **0** passed, **2** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[libs/bar.spec.ts](#r0s0)||1❌||0ms|
|
||||
|[libs/foo.spec.ts](#r0s1)||1❌||0ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">libs/bar.spec.ts</a>
|
||||
```
|
||||
Test suite failed to run
|
||||
❌ libs/bar.spec.ts
|
||||
● Test suite failed to run
|
||||
```
|
||||
### ❌ <a id="user-content-r0s1" href="#r0s1">libs/foo.spec.ts</a>
|
||||
```
|
||||
Test suite failed to run
|
||||
❌ libs/foo.spec.ts
|
||||
● Test suite failed to run
|
||||
```
|
||||
|
|
@ -1,5 +1,68 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`jest-junit tests jest testsuite errors example test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/test-errors/jest/jest-test-results.xml",
|
||||
"suites": Array [
|
||||
TestSuiteResult {
|
||||
"groups": Array [
|
||||
TestGroupResult {
|
||||
"name": "Test suite failed to run",
|
||||
"tests": Array [
|
||||
TestCaseResult {
|
||||
"error": Object {
|
||||
"details": " ● Test suite failed to run
|
||||
|
||||
tsconfig.json:13:3 - error TS6258: 'typeRoots' should be set inside the 'compilerOptions' object of the config json file
|
||||
|
||||
13 \\"typeRoots\\": [\\"./src/lib/types\\", \\"./node_modules/@types\\"],
|
||||
~~~~~~~~~~~
|
||||
",
|
||||
"line": undefined,
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "libs/foo.spec.ts",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "libs/foo.spec.ts",
|
||||
"totalTime": 0,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": Array [
|
||||
TestGroupResult {
|
||||
"name": "Test suite failed to run",
|
||||
"tests": Array [
|
||||
TestCaseResult {
|
||||
"error": Object {
|
||||
"details": " ● Test suite failed to run
|
||||
|
||||
tsconfig.json:13:3 - error TS6258: 'typeRoots' should be set inside the 'compilerOptions' object of the config json file
|
||||
|
||||
13 \\"typeRoots\\": [\\"./src/lib/types\\", \\"./node_modules/@types\\"],
|
||||
~~~~~~~~~~~
|
||||
",
|
||||
"line": undefined,
|
||||
"path": undefined,
|
||||
},
|
||||
"name": "libs/bar.spec.ts",
|
||||
"result": "failed",
|
||||
"time": 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "libs/bar.spec.ts",
|
||||
"totalTime": 0,
|
||||
},
|
||||
],
|
||||
"totalTime": 646,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`jest-junit tests report from ./reports/jest test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/jest-junit.xml",
|
||||
|
|
|
|||
3
__tests__/fixtures/test-errors/jest/files.txt
Normal file
3
__tests__/fixtures/test-errors/jest/files.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
libs/bar.spec.ts
|
||||
libs/foo.spec.ts
|
||||
tsconfig.json
|
||||
25
__tests__/fixtures/test-errors/jest/jest-test-results.xml
Normal file
25
__tests__/fixtures/test-errors/jest/jest-test-results.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites name="jest tests" tests="0" failures="0" errors="2" time="0.646">
|
||||
<testsuite name="libs/foo.spec.ts" errors="1" failures="0" skipped="0" timestamp="1970-01-01T00:00:00" time="0" tests="0">
|
||||
<testcase classname="Test suite failed to run" name="libs/foo.spec.ts" time="0">
|
||||
<error> ● Test suite failed to run
|
||||
|
||||
tsconfig.json:13:3 - error TS6258: 'typeRoots' should be set inside the 'compilerOptions' object of the config json file
|
||||
|
||||
13 "typeRoots": ["./src/lib/types", "./node_modules/@types"],
|
||||
~~~~~~~~~~~
|
||||
</error>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
<testsuite name="libs/bar.spec.ts" errors="1" failures="0" skipped="0" timestamp="1970-01-01T00:00:00" time="0" tests="0">
|
||||
<testcase classname="Test suite failed to run" name="libs/bar.spec.ts" time="0">
|
||||
<error> ● Test suite failed to run
|
||||
|
||||
tsconfig.json:13:3 - error TS6258: 'typeRoots' should be set inside the 'compilerOptions' object of the config json file
|
||||
|
||||
13 "typeRoots": ["./src/lib/types", "./node_modules/@types"],
|
||||
~~~~~~~~~~~
|
||||
</error>
|
||||
</testcase>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
|
@ -66,4 +66,27 @@ describe('jest-junit tests', () => {
|
|||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('jest testsuite errors example test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'test-errors', 'jest', 'jest-test-results.xml')
|
||||
const trackedFilesPath = path.join(__dirname, 'fixtures', 'test-errors', 'jest', 'files.txt')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'jest-test-errors-results.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles
|
||||
//workDir: '/home/dorny/dorny/jest/'
|
||||
}
|
||||
|
||||
const parser = new JestJunitParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue