cucumber-to-junit
Version:
Converts [Cucumber.js](https://github.com/cucumber/cucumber-js) json results files to JUnit XML.
3 lines (2 loc) • 2.15 kB
JavaScript
;function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("jsonfile")),r=e(require("junit-report-builder"));function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function a(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}exports.CucumberConverter=function(){function e(e){this.config=e}var n=e.prototype;return n.convertToJunit=function(e,n){for(var i,o=a(t.readFileSync(e));!(i=o()).done;)this.addTestSuite(i.value);r.writeTo(n)},n.addTestSuite=function(e){for(var t,n=0,i=r.testSuite().name(e.name),o=a(e.elements);!(t=o()).done;)n+=this.addTestCases(t.value,i);i.time(n)},n.addTestCases=function(e,t){if("background"===e.type)return 0;var r=this.getScenarioResult(e),n=t.testCase().name(e.name).className(e.id).time(r.duration);return"failed"===r.status?n.failure(r.failureMessage):"skipped"!==r.status&&"undefined"!==r.status||n.skipped(),r.duration},n.getScenarioResult=function(e){for(var t,r="passed",n="",i=0,o=a(e.steps);!(t=o()).done;){var u=t.value;i+=u.result.duration?u.result.duration/1e9:0,"failed"!==r&&("failed"===u.result.status?(r="failed",n=u.result.error_message):this.config.markUndefinedAsFailed&&"undefined"===u.result.status?(r="failed",n="One or more steps are undefined"):r=u.result.status)}return{status:r,failureMessage:n,duration:i}},e}();
//# sourceMappingURL=cucumber-to-junit.cjs.production.min.js.map