我正在使用Protractor和jasmine-allure-reporter。执行测试后,我在'allure-results'中获取XML文件,从那里我使用命令“allure serve allure-results”生成HTML报告。执行此命令时,html报告将在“Temp”文件夹中生成(%Temp%\ 8691932647422029 \ allure-report)。我想在本地生成/保存此报告,我该怎么做。因为在测试运行后我可能需要共享html报告。你能帮帮我吗? 以下是allure-report的Config.js部分
onPrepare: function() {
var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter());
jasmine.getEnv().afterEach(function(done){
//allure.addEnvironment(Path, 'Chrome'),
browser.takeScreenshot().then(function (png) {
allure.createAttachment('Screenshot', function () {
return new Buffer(png, 'base64')
},'image/png')();
done();
})
});
}
答案 0 :(得分:1)
请按照此设置在本地目录中生成输出。 'Allure Command Line Tool'将帮助您生成诱惑报告。
通过运行此命令npm install allure-commandline --save-dev
之后,将"posttest": "allure generate allure-results --clean -o allure-report"
部分添加到package.json中。因此,当使用npm test
运行测试时,posttest
中的命令将在您的本地目录中生成报告。您可以参考下面script
文件的示例package.json
部分。
"scripts": {
"pretest": "rm -rf allure-report",
"test": "protractor conf.js",
"posttest": "allure generate allure-results --clean -o allure-report || true"
}
在posttest
部分中,您在--clean -o
部分之后引用输出目录位置。
同样更改conf.js
这样的文件,并在resultsDir
部分添加本地目录路径以存储生成的xml文件。
onPrepare: function () {
var AllureReporter = require('jasmine-allure-reporter');
//allure report
jasmine.getEnv().addReporter(new AllureReporter({
resultsDir: 'allure-results'
}));
/*
* It will take screenshot after each Jasmine function 'it'
*/
jasmine.getEnv().afterEach(function (done) {
browser.takeScreenshot().then(function (png) {
allure.createAttachment('Screenshot', function () {
return new Buffer(png, 'base64')
}, 'image/png')();
done();
})
});
}
当前设置将生成xml
中的所有allure-results
文件和allure-report
文件夹中的html报告(均位于根目录中)。
|-allure-results
|-allure-report
|-node_modules
|-src-|-conf.js
|-package.json
请参考github
中的示例项目