Skip to content

Commit 5346674

Browse files
authored
fix(junit-reporter): improve error handling and skipped test reporting for Cucumber framework (webdriverio#14706)
1 parent e8a4ee4 commit 5346674

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

packages/wdio-junit-reporter/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,14 +321,14 @@ class JunitReporter extends WDIOReporter {
321321
const suiteKeys = Object.keys(this.suites)
322322

323323
if (suiteKeys.length === 0) {
324-
const error = this.runnerStat?.error ?? 'No tests found'
325324
/**
326325
* Because this function gets called twice for Cucumber, this conditional is to ensure that
327326
* Cucumber and Mocha generate the same Junit report for empty suites. Otherwise, Cucumber reporter
328327
* would generate two <testsuite>.
329328
*/
330329
if (!isCucumberFrameworkRunner || (isCucumberFrameworkRunner && type === 'feature')) {
331-
return builder.testSuite().testCase().className('').name('').failure(error)
330+
const testCase = builder.testSuite().testCase().className('').name('')
331+
return this.runnerStat?.error ? testCase.failure(this.runnerStat.error) : testCase.skipped()
332332
}
333333
}
334334

packages/wdio-junit-reporter/tests/__snapshots__/reporter.test.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ exports[`wdio-junit-reporter > generates xml output correctly when the addFileAt
3838

3939
exports[`wdio-junit-reporter > generates xml output correctly when the addFileAttribute option is set 1`] = `"<?xmlversion="1.0"encoding="UTF-8"?><testsuitestests="3"failures="1"errors="0"skipped="1"><testsuitename="Myawesomefeature"timestamp="2018-04-17T09:10:10.255Z"time="0.745"tests="3"failures="1"errors="0"skipped="1"><properties><propertyname="specId"value="0"/><propertyname="suiteName"value="Myawesomefeature"/><propertyname="capabilities"value="chrome.65_0_3325_181.macosx"/><propertyname="file"value="/path/to/project/test/specs/sync.spec.js"/></properties><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature"name="shouldcandosomething"time="0.727"file="/path/to/project/test/specs/sync.spec.js"><system-out><![CDATA[COMMAND:POST/session/4875944f97c944d80e944a399b682656/url-{"url":"http://google.com/"}RESULT:{"url":"http://google.com/"}COMMAND:GET/session/4875944f97c944d80e944a399b682656/title-{}RESULT:{}]]></system-out></testcase><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature"name="shouldskipatest"time="0"file="/path/to/project/test/specs/sync.spec.js"><skipped/></testcase><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature"name="shouldfailatest"time="0.014"file="/path/to/project/test/specs/sync.spec.js"><failuremessage="uupsi"/><system-out><![CDATA[COMMAND:GET/session/4875944f97c944d80e944a399b682656/log/types-{}RESULT:{}COMMAND:POST/session/4875944f97c944d80e944a399b682656/log-{"type":"browser"}COMMAND:POST/session/4875944f97c944d80e944a399b682656/log-{"type":"driver"}RESULT:{"type":"driver"}RESULT:{"type":"browser"}COMMAND:DELETE/session/4875944f97c944d80e944a399b682656-{}RESULT:{}]]></system-out><system-err><![CDATA[Error:uupsiatContext.it(/path/to/project/test/specs/sync.spec.js:18:15)at/path/to/project/packages/wdio-sync/src/index.js:28:28atPromise(<anonymous>)atF(/path/to/project/node_modules/core-js/library/modules/_export.js:35:28)atContext.executeSync(/path/to/project/packages/wdio-sync/src/index.js:26:12)at/path/to/project/packages/wdio-sync/src/index.js:161:33]]></system-err></testcase></testsuite></testsuites>"`;
4040

41-
exports[`wdio-junit-reporter > generates xml output correctly with empty suite 1`] = `"<?xmlversion="1.0"encoding="UTF-8"?><testsuitestests="1"failures="1"errors="0"skipped="0"><testsuitetests="1"failures="1"errors="0"skipped="0"><testcaseclassname=""name=""><failuremessage="Notestsfound"/></testcase></testsuite></testsuites>"`;
41+
exports[`wdio-junit-reporter > generates xml output correctly with empty suite 1`] = `"<?xmlversion="1.0"encoding="UTF-8"?><testsuitestests="1"failures="0"errors="0"skipped="1"><testsuitetests="1"failures="0"errors="0"skipped="1"><testcaseclassname=""name=""><skipped/></testcase></testsuite></testsuites>"`;
4242

4343
exports[`wdio-junit-reporter > generates xml output for multiple describe blocks 1`] = `"<?xmlversion="1.0"encoding="UTF-8"?><testsuitestests="6"failures="2"errors="0"skipped="2"><testsuitename="Myawesomefeature"timestamp="2018-04-17T09:10:10.255Z"time="0.745"tests="3"failures="1"errors="0"skipped="1"><properties><propertyname="specId"value="0"/><propertyname="suiteName"value="Myawesomefeature"/><propertyname="capabilities"value="chrome.65_0_3325_181.macosx"/><propertyname="file"value="/path/to/project/test/specs/sync.spec.js"/></properties><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature"name="shouldcandosomething"time="0.727"><system-out><![CDATA[COMMAND:POST/session/4875944f97c944d80e944a399b682656/url-{"url":"http://google.com/"}RESULT:{"url":"http://google.com/"}COMMAND:GET/session/4875944f97c944d80e944a399b682656/title-{}RESULT:{}]]></system-out></testcase><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature"name="shouldskipatest"time="0"><skipped/></testcase><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature"name="shouldfailatest"time="0.014"><failuremessage="uupsi"/><system-out><![CDATA[COMMAND:GET/session/4875944f97c944d80e944a399b682656/log/types-{}RESULT:{}COMMAND:POST/session/4875944f97c944d80e944a399b682656/log-{"type":"browser"}COMMAND:POST/session/4875944f97c944d80e944a399b682656/log-{"type":"driver"}RESULT:{"type":"driver"}RESULT:{"type":"browser"}COMMAND:DELETE/session/4875944f97c944d80e944a399b682656-{}RESULT:{}]]></system-out><system-err><![CDATA[Error:uupsiatContext.it(/path/to/project/test/specs/sync.spec.js:18:15)at/path/to/project/packages/wdio-sync/src/index.js:28:28atPromise(<anonymous>)atF(/path/to/project/node_modules/core-js/library/modules/_export.js:35:28)atContext.executeSync(/path/to/project/packages/wdio-sync/src/index.js:26:12)at/path/to/project/packages/wdio-sync/src/index.js:161:33]]></system-err></testcase></testsuite><testsuitename="Myawesomefeature3"timestamp="2018-04-17T09:10:10.255Z"time="0.745"tests="3"failures="1"errors="0"skipped="1"><properties><propertyname="specId"value="0"/><propertyname="suiteName"value="Myawesomefeature3"/><propertyname="capabilities"value="chrome.65_0_3325_181.macosx"/><propertyname="file"value="/path/to/project/test/specs/sync.spec.js"/></properties><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature3"name="shouldcandosomething"time="0.727"><system-out><![CDATA[COMMAND:POST/session/4875944f97c944d80e944a399b682656/url-{"url":"http://google.com/"}RESULT:{"url":"http://google.com/"}COMMAND:GET/session/4875944f97c944d80e944a399b682656/title-{}RESULT:{}]]></system-out></testcase><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature3"name="shouldskipatest"time="0"><skipped/></testcase><testcaseclassname="chrome.65_0_3325_181.macosx.My_awesome_feature3"name="shouldfailatest"time="0.014"><failuremessage="uupsi"/><system-out><![CDATA[COMMAND:GET/session/4875944f97c944d80e944a399b682656/log/types-{}RESULT:{}COMMAND:POST/session/4875944f97c944d80e944a399b682656/log-{"type":"browser"}COMMAND:POST/session/4875944f97c944d80e944a399b682656/log-{"type":"driver"}RESULT:{"type":"driver"}RESULT:{"type":"browser"}COMMAND:DELETE/session/4875944f97c944d80e944a399b682656-{}RESULT:{}]]></system-out><system-err><![CDATA[Error:uupsiatContext.it(/path/to/project/test/specs/sync.spec.js:18:15)at/path/to/project/packages/wdio-sync/src/index.js:28:28atPromise(<anonymous>)atF(/path/to/project/node_modules/core-js/library/modules/_export.js:35:28)atContext.executeSync(/path/to/project/packages/wdio-sync/src/index.js:26:12)at/path/to/project/packages/wdio-sync/src/index.js:161:33]]></system-err></testcase></testsuite></testsuites>"`;
4444

0 commit comments

Comments
 (0)