diff --git a/docs/report-format.md b/docs/report-format.md index 3a03728..7ee83da 100644 --- a/docs/report-format.md +++ b/docs/report-format.md @@ -52,18 +52,15 @@ stored in [AWS Timestream], please see [Storage Schema]. "column": "" }, "browser": "", - "config": { - "timeout": "" - }, + "timeout": "", "started": "", "duration": { "total": "", "final": "" }, - "taxonomy": { - "tool": "", - "type": "" - }, + "tool": "", + "experience": "", + "type": "", "retries": "", "github": { "codeowners": "" diff --git a/schemas/report/v3.json b/schemas/report/v3.json index 87110da..95ef9ad 100644 --- a/schemas/report/v3.json +++ b/schemas/report/v3.json @@ -138,31 +138,22 @@ "file" ] }, - "taxonomy": { - "type": "object", - "unevaluatedProperties": false, - "properties": { - "tool": { - "$ref": "#/$defs/nonEmptyUnpaddedString" - }, - "type": { - "$ref": "#/$defs/nonEmptyUnpaddedString" - } - } + "tool": { + "$ref": "#/$defs/nonEmptyUnpaddedString" + }, + "experience": { + "$ref": "#/$defs/nonEmptyUnpaddedString" + }, + "type": { + "$ref": "#/$defs/nonEmptyUnpaddedString" }, "started": { "type": "string", "format": "date-time" }, - "config": { - "type": "object", - "unevaluatedProperties": false, - "properties": { - "timeout": { - "type": "integer", - "minimum": 0 - } - } + "timeout": { + "type": "integer", + "minimum": 0 }, "duration": { "type": "object", diff --git a/src/helpers/report-builder.cjs b/src/helpers/report-builder.cjs index c28c8ae..0ec9218 100644 --- a/src/helpers/report-builder.cjs +++ b/src/helpers/report-builder.cjs @@ -34,13 +34,11 @@ const reportMemberPriority = [ 'browser', 'framework', 'operatingSystem', - 'config', 'timeout', 'started', 'duration', 'total', 'final', - 'taxonomy', 'tool', 'experience', 'type', @@ -176,12 +174,11 @@ class ReportSummaryBuilder extends ReportBuilderBase { } class ReportDetailBuilder extends ReportBuilderBase { - constructor(reportConfiguration, codeowners, { reportVersionLatest = false } = {}) { + constructor(reportConfiguration, codeowners) { super(); this._reportConfiguration = reportConfiguration; this._codeowners = codeowners; - this._reportVersionLatest = reportVersionLatest; this._setProperty('retries', 0); } @@ -209,19 +206,9 @@ class ReportDetailBuilder extends ReportBuilderBase { const { type, tool, experience } = this._reportConfiguration.getTaxonomy(filePath); - if (this._reportVersionLatest) { - if (type != null) { - this._setNestedProperty('taxonomy', 'type', type, options); - } - - if (tool != null) { - this._setNestedProperty('taxonomy', 'tool', tool, options); - } - } else { - this._setProperty('type', type, options); - this._setProperty('tool', tool, options); - this._setProperty('experience', experience, options); - } + this._setProperty('type', type, options); + this._setProperty('tool', tool, options); + this._setProperty('experience', experience, options); if (this._codeowners) { const owners = this._codeowners.getOwner(filePath); @@ -299,11 +286,7 @@ class ReportDetailBuilder extends ReportBuilderBase { } setTimeout(timeout, options) { - if (this._reportVersionLatest) { - this._setNestedProperty('config', 'timeout', timeout, options); - } else { - this._setProperty('timeout', timeout, options); - } + this._setProperty('timeout', timeout, options); return this; } @@ -325,7 +308,6 @@ class ReportBuilder extends ReportBuilderBase { this._logger = logger; this._verbose = verbose; - this._reportVersionLatest = reportVersionLatest; this._reportConfiguration = new ReportConfiguration(reportConfigurationPath); if (reportWriter) { @@ -380,9 +362,7 @@ class ReportBuilder extends ReportBuilderBase { const { details } = this._data; if (!details.has(id)) { - details.set(id, new ReportDetailBuilder(this._reportConfiguration, this._codeowners, { - reportVersionLatest: this._reportVersionLatest - })); + details.set(id, new ReportDetailBuilder(this._reportConfiguration, this._codeowners)); } return details.get(id); @@ -410,10 +390,8 @@ class ReportBuilder extends ReportBuilderBase { } if (this._verbose) { - const { name, location } = detail; + const { name, location, type, tool, experience } = detail; const prefix = `Test '${name}' at '${location}' is missing`; - const type = this._reportVersionLatest ? detail.taxonomy?.type : detail.type; - const tool = this._reportVersionLatest ? detail.taxonomy?.tool : detail.tool; if (!type) { this._logger.warning(`${prefix} a 'type'`); @@ -423,7 +401,7 @@ class ReportBuilder extends ReportBuilderBase { this._logger.warning(`${prefix} a 'tool'`); } - if (!this._reportVersionLatest && !detail.experience) { + if (!experience) { this._logger.warning(`${prefix} an 'experience'`); } } diff --git a/test/integration/data/validation/test-report-mocha.js b/test/integration/data/validation/test-report-mocha.js index e068fcd..9e2c873 100644 --- a/test/integration/data/validation/test-report-mocha.js +++ b/test/integration/data/validation/test-report-mocha.js @@ -11,71 +11,91 @@ export const testReportLatestPartial = { name: 'reporter 1 > passed', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, + timeout: 2000, + tool: 'Mocha 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 0 }, { name: 'reporter 1 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, + timeout: 2000, + tool: 'Mocha 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 0 }, { name: 'reporter 1 > flaky', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, + timeout: 2000, + tool: 'Mocha 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 2 }, { name: 'reporter 1 > failed', status: 'failed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, + timeout: 2000, + tool: 'Mocha 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 3 }, { name: 'reporter 2 > passed', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + timeout: 2000, + tool: 'Test Reporting', + experience: 'Mocha 2 Test Framework', + type: 'integration', retries: 0 }, { name: 'reporter 2 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + timeout: 2000, + tool: 'Test Reporting', + experience: 'Mocha 2 Test Framework', + type: 'integration', retries: 0 }, { name: 'reporter 2 > flaky', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + timeout: 2000, + tool: 'Test Reporting', + experience: 'Mocha 2 Test Framework', + type: 'integration', retries: 2 }, { name: 'reporter 2 > failed', status: 'failed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + timeout: 2000, + tool: 'Test Reporting', + experience: 'Mocha 2 Test Framework', + type: 'integration', retries: 3 }, { name: 'reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, + timeout: 2000, + tool: 'Mocha 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 0 }, { name: 'reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - config: { timeout: 2000 }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + timeout: 2000, + tool: 'Test Reporting', + experience: 'Mocha 2 Test Framework', + type: 'integration', retries: 0 }] }; diff --git a/test/integration/data/validation/test-report-playwright.js b/test/integration/data/validation/test-report-playwright.js index 4ce3c67..fadd27f 100644 --- a/test/integration/data/validation/test-report-playwright.js +++ b/test/integration/data/validation/test-report-playwright.js @@ -16,8 +16,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 2 > skipped static, fixme', @@ -28,8 +30,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 1 > passed', @@ -40,8 +44,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 1 > skipped dynamic, fixme', @@ -52,8 +58,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 1 > failed dynamic expected', @@ -64,8 +72,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 1 > skipped static', @@ -76,8 +86,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 2 > passed', @@ -88,8 +100,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 1 > failed', @@ -100,8 +114,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 3 }, { name: '[chromium] > reporter 1 > skipped dynamic', @@ -112,8 +128,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 1 > failed static expected, skipped dynamic, fixme', @@ -124,8 +142,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 2 > skipped dynamic', @@ -136,8 +156,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 2 > skipped static', @@ -148,8 +170,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 1 > flaky', @@ -160,8 +184,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 2 }, { name: '[chromium] > reporter 1 > failed static expected, skipped dynamic', @@ -172,8 +198,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 2 > skipped dynamic, fixme', @@ -184,8 +212,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 2 > failed dynamic expected', @@ -196,8 +226,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 2 > failed', @@ -208,8 +240,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 3 }, { name: '[chromium] > reporter 2 > failed static expected, skipped dynamic, fixme', @@ -220,8 +254,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 2 > flaky', @@ -232,8 +268,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 2 }, { name: '[chromium] > reporter 2 > failed static expected, skipped dynamic', @@ -244,8 +282,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > skipped static, fixme', @@ -256,8 +296,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > passed', @@ -268,8 +310,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > skipped static', @@ -280,8 +324,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > skipped dynamic', @@ -292,8 +338,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > skipped dynamic, fixme', @@ -304,8 +352,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > failed dynamic expected', @@ -316,8 +366,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > flaky', @@ -328,8 +380,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 2 }, { name: '[firefox] > reporter 2 > failed static expected, skipped dynamic', @@ -340,8 +394,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > failed', @@ -352,8 +408,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 3 }, { name: '[firefox] > reporter 2 > failed static expected, skipped dynamic, fixme', @@ -364,8 +422,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 1 > skipped static, fixme', @@ -376,8 +436,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 1 > passed', @@ -388,8 +450,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 1 > skipped static', @@ -400,8 +464,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 1 > failed static expected', @@ -412,8 +478,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 1 > skipped dynamic', @@ -424,8 +492,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 1 > failed', @@ -436,8 +506,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 3 }, { name: '[chromium] > reporter 2 > failed static expected', @@ -448,8 +520,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 1 > skipped dynamic, fixme', @@ -460,8 +534,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 1 > failed static expected, skipped dynamic, fixme', @@ -472,8 +548,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 2 > skipped static, fixme', @@ -484,8 +562,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 1 > failed dynamic expected', @@ -496,8 +576,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 1 > flaky', @@ -508,8 +590,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 2 }, { name: '[webkit] > reporter 2 > skipped dynamic', @@ -520,8 +604,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 1 > failed static expected, skipped dynamic', @@ -532,8 +618,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 2 > passed', @@ -544,8 +632,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 2 > failed dynamic expected', @@ -556,8 +646,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 2 > skipped static', @@ -568,8 +660,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 2 > failed static expected, skipped dynamic, fixme', @@ -580,8 +674,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 2 > failed static expected, skipped dynamic', @@ -592,8 +688,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 2 > skipped dynamic, fixme', @@ -604,8 +702,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 2 > failed', @@ -616,8 +716,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 3 }, { name: '[webkit] > reporter 2 > flaky', @@ -628,8 +730,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 2 }, { name: '[firefox] > reporter 2 > failed static expected', @@ -640,8 +744,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 1 > failed static expected', @@ -652,8 +758,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 2 > failed static expected', @@ -664,8 +772,10 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[chromium] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -676,8 +786,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[chromium] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -688,8 +800,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[firefox] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -700,8 +814,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }, { name: '[webkit] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -712,8 +828,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, + timeout: 30000, + tool: 'Playwright 1 Test Reporting', + experience: 'Playwright 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[webkit] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -724,8 +842,10 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - config: { timeout: 30000 }, - taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, + timeout: 30000, + tool: 'Test Reporting', + experience: 'Playwright 2 Test Framework', + type: 'visual diff', retries: 0 }] }; diff --git a/test/integration/data/validation/test-report-web-test-runner.js b/test/integration/data/validation/test-report-web-test-runner.js index 65fe8e8..62ee40b 100644 --- a/test/integration/data/validation/test-report-web-test-runner.js +++ b/test/integration/data/validation/test-report-web-test-runner.js @@ -12,128 +12,160 @@ export const testReportLatestPartial = { status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }, { name: 'reporter 1 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }, { name: 'reporter 1 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[group 1] > reporter 2 > passed', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 1] > reporter 2 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 1] > reporter 2 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 1] > reporter 2 > passed', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 1] > reporter 2 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 1] > reporter 2 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 2] > reporter 1 > passed', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[group 2] > reporter 1 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[group 2] > reporter 1 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }, { name: 'reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }, { name: '[group 1] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 1] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - config: { timeout: 120000 }, - taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, + timeout: 120000, + tool: 'Test Reporting', + experience: 'WebTestRunner 2 Test Framework', + type: 'accessibility', retries: 0 }, { name: '[group 2] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - config: { timeout: 120000 }, - taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, + timeout: 120000, + tool: 'WebTestRunner 1 Test Reporting', + experience: 'WebTestRunner 1 Test Framework', + type: 'integration', retries: 0 }] }; diff --git a/test/integration/data/validation/test-report-webdriverio.js b/test/integration/data/validation/test-report-webdriverio.js index e3a9fc5..52ca96f 100644 --- a/test/integration/data/validation/test-report-webdriverio.js +++ b/test/integration/data/validation/test-report-webdriverio.js @@ -15,103 +15,137 @@ export const testReportLatestPartial = { name: `[${platform}] > reporter 1 > passed`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, + tool: 'WebdriverIO 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 0 }, { name: `[${platform}] > reporter 1 > skipped`, status: 'skipped', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, + tool: 'WebdriverIO 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 0 }, { name: `[${platform}] > reporter 1 > flaky`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, + tool: 'WebdriverIO 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 2 }, { name: `[${platform}] > reporter 1 > failed`, status: 'failed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, + tool: 'WebdriverIO 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 3 }, { name: `[${platform}] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, + tool: 'WebdriverIO 1 Test Reporting', + experience: 'Test Framework', + type: 'ui', retries: 0 }, { name: `[${platform}] > reporter 2 > passed`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 2 > skipped`, status: 'skipped', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 2 > flaky`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 2 }, { name: `[${platform}] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 2 > passed 2`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 2 > passed 3`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 2 > passed 4`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 2 > passed with timeout`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'WebdriverIO 2 Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 3 > passed 1`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 3 > passed 2`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 3 > passed 3`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'Test Framework', + type: 'integration', retries: 0 }, { name: `[${platform}] > reporter 3 > passed 4`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - taxonomy: { tool: 'Test Reporting', type: 'integration' }, + tool: 'Test Reporting', + experience: 'Test Framework', + type: 'integration', retries: 0 }] };