Skip to content
This repository has been archived by the owner on Nov 14, 2022. It is now read-only.

Reporting and default settings #7

Merged
merged 9 commits into from Oct 18, 2019
7 changes: 7 additions & 0 deletions boilerplate/configuration/reporterSettings.js
@@ -0,0 +1,7 @@
// For available options, please see
// https://www.npmjs.com/package/cucumber-html-reporter
module.exports.config = {
theme: 'bootstrap',
reportSuiteAsScenarios: false,
launchReport: false
}
12 changes: 12 additions & 0 deletions boilerplate/step_definitions/support.js
@@ -0,0 +1,12 @@
import { defineSupportCode } from 'cucumber';

// Take screenshots of failed scenarios
defineSupportCode(({ After }) => {
After(function (scenario) {
var world = this;
if (scenario.isFailed()) {
var screenshotBase64Encoded = browser.screenshot();
world.attach(new Buffer(screenshotBase64Encoded.value, 'base64'), 'image/png');
}
});
});
49 changes: 35 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "qavalry",
"version": "0.6.0",
"version": "1.0.0-beta.2",
"description": "Framework for automated testing using Cucumber, WebdriverIO and Selenium",
"main": "index.js",
"scripts": {
Expand Down
18 changes: 14 additions & 4 deletions src/index.js
Expand Up @@ -12,6 +12,7 @@ const args = require('yargs').argv;
const fsextra = require('fs-extra');
var configFile = './wdio.defaults.conf.js';
var defaultOptionsFile = './configuration/options.js';
var defaultReporterSettings = './configuration/reporterSettings.js';

function prepareOutputFolders() {
var outputFolder = path.join(process.cwd(), './_output');
Expand Down Expand Up @@ -54,7 +55,7 @@ function setup() {
log.info('Running setup!');
var destination = process.cwd();
fsextra.copy(path.join(__dirname, '../boilerplate'), `${destination}`, err => {
if(err) {
if (err) {
console.log('Something went wrong: ');
console.log(err);
}
Expand All @@ -68,7 +69,7 @@ function createHtmlReport() {
if (fs.existsSync(input)) {
var currentDate = dateformat(new Date(), "dd-mm-yyyy_HHMMss");
var output = path.join(process.cwd(), `./_output/reports/html/${currentDate}_html_report.html`);

var options = {
theme: 'bootstrap',
jsonFile: input,
Expand All @@ -77,11 +78,20 @@ function createHtmlReport() {
launchReport: false
};

if (args.reportdata) {
var customOptions = require(path.join(process.cwd(), args.reportdata)).config;
options = Object.assign(options, customOptions);
} else if(fs.existsSync(defaultReporterSettings)) {
log.info('Default reporter settings found at: ' + defaultReporterSettings);
var defaultOptions = require(path.join(process.cwd(), defaultReporterSettings)).config;
options = Object.assign(options, defaultOptions);
}

reporter.generate(options);
}
}

if (process.argv[2] == 'setup') {
if (process.argv[2] == 'setup') {
setup();
} else if (process.argv[2] == 'run') {
// Make sure the environment is set up properly before running any tests
Expand All @@ -107,7 +117,7 @@ if (process.argv[2] == 'setup') {
}

// Register CLI tags
if(args.tags) {
if (args.tags) {
options.cucumberOpts.tagExpression = args.tags;
}

Expand Down
2 changes: 1 addition & 1 deletion src/wdio.defaults.conf.js
Expand Up @@ -134,7 +134,7 @@ module.exports.config = {
'js:babel-register',
], // <string[]> ("extension:module") require files with the given
dryRun: false, // <boolean> invoke formatters without executing steps
failFast: true, // <boolean> abort the run on first failure
failFast: false, // <boolean> abort the run on first failure
format: ['pretty'], // <string[]> (type[:path]) specify the output format, optionally supply PATH to redirect formatter output (repeatable)
colors: true, // <boolean> disable colors in formatter output
snippets: true, // <boolean> hide step definition snippets for pending steps
Expand Down