Я следовал подходу, указанному ниже, чтобы удовлетворить мою потребность.
Я сохранил код ниже в разделе onPrepare файла конфигурации. Это создаст отчет для каждой спецификации.
onPrepare() {
return new Promise(function (fulfill, reject) {
browser.getCapabilities().then(function (value) {
reportName = value.get('webdriver.remote.sessionid') + '_' + value.get('browserName') + '_' + Math.floor(Math.random()*1E16); // eslint-disable-line
jasmine.getEnv().addReporter(
new Jasmine2HtmlReporter({
savePath: 'e2e/Results',
screenshotsFolder: 'images',
takeScreenshotsOnlyOnFailures: true,
consolidate: true,
consolidateAll: true,
cleanDestination: false,
fileName: "my-report.html",
fileName: "regression-test-report.html",
fileNamePrefix: reportName,
})
);
fulfill();
})
});
});
},
И сохранил следующий код в разделе afterLaunch, который объединит все отчеты, сгенерированные в разделе onPrepare:
afterLaunch: function afterLaunch() {
var fs = require('fs');
var output = '';
fs.readdirSync('e2e/Results/').forEach(function(file){
if(!(fs.lstatSync('e2e/Results/' + file).isDirectory()))
output = output + fs.readFileSync('e2e/Results/' + file);
});
fs.writeFileSync('e2e/Results/RegressionTestReport.html', output, 'utf8');
}
Проблема, возникшая после указанной выше конфигурации: Мне удалось консолидировать отчет путем параллельного выполнения, записав указанную выше конфигурацию в файл конфигурации. Но, если я запускаю сценарий во второй раз, отчет также объединит это (что я не хочу делать). Создание тэга 'cleanDestination: true' удаляло каждую спецификацию, как только ее выполнение заканчивалось. Итак, это не сработало.
Как я решил эту проблему? : Я запускал скрипт в jenkins, используя скрипт оболочки. Итак, я написал команду оболочки 'rm -fr e2e / Results', чтобы удалить папку отчета перед выполнением скрипта. Таким образом, отчет будет удаляться каждый раз, и будет генерироваться новый консолидированный отчет с последним исполнением.