mirror of
https://github.com/dorny/test-reporter.git
synced 2026-02-04 13:37:56 +01:00
Add support for open-test-reporting format
Add a new parser for the open-test-reporting format developed by the JUnit team (https://github.com/ota4j-team/open-test-reporting). This format is a modern, framework-agnostic XML-based test reporting standard that supports rich metadata including tags, attachments, and infrastructure information. Features: - Auto-detection of both XML format variants: - Hierarchical format (h:execution) - tree-structured results - Event-based format (e:events) - streaming/real-time results - ISO 8601 duration parsing (e.g., PT1.234S) - Status mapping: SUCCESSFUL, SKIPPED, ABORTED, FAILED, ERRORED - Error message extraction from failed tests - Proper XML namespace handling Files added: - src/parsers/open-test-reporting/open-test-reporting-types.ts - src/parsers/open-test-reporting/open-test-reporting-parser.ts - __tests__/open-test-reporting.test.ts (20 tests) - __tests__/fixtures/open-test-reporting/*.xml
This commit is contained in:
parent
ee446707ff
commit
eedd088b6d
11 changed files with 1255 additions and 0 deletions
157
__tests__/__snapshots__/open-test-reporting.test.ts.snap
Normal file
157
__tests__/__snapshots__/open-test-reporting.test.ts.snap
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
||||
|
||||
exports[`open-test-reporting tests report generation result matches snapshot for events format 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/open-test-reporting/events.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testAddition",
|
||||
"result": "success",
|
||||
"time": 100,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testSubtraction",
|
||||
"result": "success",
|
||||
"time": 150,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "java.lang.ArithmeticException: Division by zero",
|
||||
"message": "java.lang.ArithmeticException: Division by zero",
|
||||
},
|
||||
"name": "testDivision",
|
||||
"result": "failed",
|
||||
"time": 150,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testMultiplication",
|
||||
"result": "skipped",
|
||||
"time": 10,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "com.example.CalculatorTest",
|
||||
"totalTime": 700,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "TrimTests",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testTrimLeft",
|
||||
"result": "success",
|
||||
"time": 90,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testTrimRight",
|
||||
"result": "success",
|
||||
"time": 90,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "com.example.StringUtilsTest",
|
||||
"totalTime": 400,
|
||||
},
|
||||
],
|
||||
"totalTime": 1100,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`open-test-reporting tests report generation result matches snapshot for hierarchy format 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/open-test-reporting/hierarchy.xml",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testUserCreation",
|
||||
"result": "success",
|
||||
"time": 123,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testUserDeletion",
|
||||
"result": "success",
|
||||
"time": 234,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testUserUpdate",
|
||||
"result": "skipped",
|
||||
"time": 45,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "com.example.UserServiceTest",
|
||||
"totalTime": 1234,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "ValidationTests",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testValidAmount",
|
||||
"result": "success",
|
||||
"time": 200,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testInvalidAmount",
|
||||
"result": "success",
|
||||
"time": 300,
|
||||
},
|
||||
],
|
||||
},
|
||||
TestGroupResult {
|
||||
"name": "ProcessingTests",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "testSuccessfulPayment",
|
||||
"result": "success",
|
||||
"time": 500,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "org.opentest4j.AssertionFailedError: Payment should complete within 500ms but took 700ms",
|
||||
"message": "org.opentest4j.AssertionFailedError: Payment should complete within 500ms but took 700ms",
|
||||
},
|
||||
"name": "testPaymentTimeout",
|
||||
"result": "failed",
|
||||
"time": 700,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "com.example.PaymentServiceTest",
|
||||
"totalTime": 2500,
|
||||
},
|
||||
TestSuiteResult {
|
||||
"groups": [],
|
||||
"name": "com.example.EmptySuite",
|
||||
"totalTime": 0,
|
||||
},
|
||||
],
|
||||
"totalTime": 3734,
|
||||
}
|
||||
`;
|
||||
Loading…
Add table
Add a link
Reference in a new issue