feat: support pytest JUnit XML format

This commit is contained in:
Martin Fillafer 2023-03-08 13:39:44 +01:00
parent e9fa2f582c
commit 98f7746baa
4 changed files with 38 additions and 3 deletions

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<testsuites>
<testsuite name="pytest" errors="0" failures="0" skipped="0" tests="1" time="0.178"
timestamp="2023-03-08T11:47:09.377238" hostname="0e634555ad5c">
<testcase classname="product_changes.tests.first_test.MyTestCase" name="test_something" time="0.133"/>
</testsuite>
</testsuites>

View file

@ -0,0 +1,24 @@
import * as fs from 'fs'
import * as path from 'path'
import { JestJunitParser } from '../src/parsers/jest-junit/jest-junit-parser'
import { ParseOptions } from '../src/test-parser'
import { normalizeFilePath } from '../src/utils/path-utils'
describe('pytest-junit tests', () => {
it('test with one successful test', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'pytest', 'pytest-single-case.xml')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, { encoding: 'utf8' })
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new JestJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result.tests).toBe(1)
expect(result.result).toBe('success')
})
})