test-reporter/__tests__/__snapshots__/open-test-reporting.test.ts.snap
Piotr Mionskowski eedd088b6d 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
2025-12-05 09:43:46 +01:00

157 lines
4.3 KiB
Text

// 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,
}
`;