Jasmine Allure Plugin
A plugin to generate an Allure report out of Jasmine tests.Using Allure Reporter in Jasmine2
Add the lib intopackage.json
and then configure the plugin:// conf.js
var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter({
resultsDir: 'allure-results'
}));
Using Allure Reporter in Protractor
Put the above code into theonPrepare
inside of your conf.js
:
// conf.js
exports.config = {
framework: 'jasmine2',
onPrepare: function() {
var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter({
resultsDir: 'allure-results'
}));
}
}
Generate HTML report from Allure results
The Reporter will generate xml files inside of aresultsDir
, then we need to generate HTML out of them. You can
use Maven for that. Copy ready-to-use pom.xml
from node_modules/jasmine-allure-reporter
and run:``
mvn site -Dallure.results_pattern=allure-results
``It will put HTMLs into
target/site/allure-maven-plugin
folder. To serve them via localhost:1324 use:``
mvn jetty:run -Djetty.port=1234
``Otherwise choose one of other ways to generate HTML.
Adding Screenshot in the end of each test
onPrepare: function () {
var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter());
jasmine.getEnv().afterEach(function(done){
browser.takeScreenshot().then(function (png) {
allure.createAttachment('Screenshot', function () {
return new Buffer(png, 'base64')
}, 'image/png')();
done();
})
});
}
Note done
callback! TBD
- Currently attachments are added to the test case instead of the current step. This needs to be fixed in
allure-js-commons
.- Add support for Features.
- Add support to Jasmine1. Right now only Jasmine2 is available (do we really need this?).
- Add ability to use reflection for decoration method of page objects so that we don't need to write Allure-related
For Developers
See the system tests to quickly check how the reporter works in real life:
node_modules/protractor/bin/protractor ./test/system/conf.js