我希望从Protractor-Cucumber测试中创建JUnit样式的XML报告,以便CI可以使用它们。
有关如何实现这一目标的详细步骤吗?
从下面的链接获得了量角器 - cucumber-junit npm库,但文档并不详细。
https://www.npmjs.com/package/protractor-cucumber-junit
该页面还指向一个名为'cucumberjs-junitxml'的更好的插件。有关这方面的文件,请参阅
https://github.com/sonyschan/cucumberjs-junitxml
这也不是很有帮助。
问题:
为了生成cucumber junit xml
,首先需要生成cucumber json report:
1)创建一个单独的js文件,你可以给它任何名称,如果你把它放在hooks.js
与你所有的before
和after
钩子会更好
var Cucumber = require('cucumber'); // npm install --save cucumber
var fs = require('fs');
var hooks = function () {
var outputDir = './Reports/';
var JsonFormatter = Cucumber.Listener.JsonFormatter();
JsonFormatter.log = function (string) {
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir);
}
var targetJson = outputDir + 'cucumber_report.json';
fs.writeFile(targetJson, string, function (err) {
if (err) {
console.log('Failed to save cucumber test results to json file.');
console.log(err);
}
});
};
this.registerListener(JsonFormatter);
}
module.exports = hooks;
这将在当前目录的Reports文件夹中创建cucumber_report.json文件。
2)您可以使用cucumber-junit
库https://www.npmjs.com/package/cucumber-junit或上面提到的其中一个库来使用此json报告,所有这些都是相似的并按照简单的说明操作,然后只需运行以下命令
$ cat ./Reports/cucumber_report.json | ./node_modules/.bin/cucumber-junit > cucumber_report.xml
它会生成cucumber_report.xml文件。