我希望从Protractor-Cucumber测试中创建JUnit样式的XML报告,以便CI可以使用它们。
是否有关于如何实现这一目标的详细步骤?
从下面的链接获得了protractor-cucumber-junit npm库,但文档并不详细。
https://www.npmjs.com/package/protractor-cucumber-junit
该页面还指向一个更好的插件,名为' cucumberjs-junitxml'。有关此文档的文档在
中给出https://github.com/sonyschan/cucumberjs-junitxml
这也不是很有帮助。
问题:
答案 0 :(得分:4)
要生成cucumber json report:
,首先需要生成hooks.js
1)创建一个单独的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;
挂钩
cucumber-junit
这将在当前目录的 Reports 文件夹中创建 cucumber_report.json 文件。
2)您可以使用$ cat ./Reports/cucumber_report.json | ./node_modules/.bin/cucumber-junit > cucumber_report.xml
库https://www.npmjs.com/package/cucumber-junit或您上面提到的其中一个库来使用此json报告,所有这些都是类似的&按照简单的说明&然后只需运行以下命令
public static class Algorithms
{
public static void Rotate<T>(this T[] array, int count)
{
if (array == null || array.Length < 2) return;
count %= array.Length;
if (count == 0) return;
int left = count < 0 ? -count : array.Length + count;
int right = count > 0 ? count : array.Length - count;
if (left <= right)
{
for (int i = 0; i < left; i++)
{
var temp = array[0];
Array.Copy(array, 1, array, 0, array.Length - 1);
array[array.Length - 1] = temp;
}
}
else
{
for (int i = 0; i < right; i++)
{
var temp = array[array.Length - 1];
Array.Copy(array, 0, array, 1, array.Length - 1);
array[0] = temp;
}
}
}
}
它将生成cucumber_report.xml文件。