UNPKG

nemo

Version:

Wrapper to run mocha suites with injected selenium-webdriver instance

66 lines (63 loc) 2.6 kB
var debug = require('debug'); var log = debug('nemo:reporter:log'); var filenamify = require('filenamify'); var fs = require('fs'); var mkdirp = require('mkdirp'); var util = require('./util'); function masterEnd(context) { context.emitter.once('master:end', (_context, _instances) => { let output = util.formatSummary(_instances); // make report directory in case mocha reporter did not (happens when no tests run) mkdirp.sync(`${_context.config.get('output:reports')}`); try { fs.writeFileSync(`${_context.config.get('output:reports')}/summary.json`, JSON.stringify(output, null, '\t')); } catch (err) { console.error('something went wrong writing report file summary.json'); console.error(err); } }); } module.exports.mochawesome = function mochawesome(context, instance) { masterEnd(context); if (!instance.conf.reports) { log('mochawesome: output.reports was not defined. Fallback to manual mochawesome config'); return; } let assetsDir = `${instance.conf.reportsBase}/mochawesomeAssets`; log('mochawesome: start: %O', instance.conf.mocha); let instanceLabel = ''; for (let tag in instance.tags) { if (instance.tags.hasOwnProperty(tag)) { instanceLabel = instanceLabel + `:${tag}:${instance.tags[tag]}:`; } } instance.conf.reports = `${instance.conf.reports}/${filenamify(instanceLabel)}`; let reporterOptions = { reportDir: instance.conf.reports, reportFilename: 'nemo-report', assetsDir: assetsDir }; instance.tags.reportFile = `${instance.conf.reports}/nemo-report.html`.split(instance.conf.reportsBase)[1]; instance.conf.mocha.reporterOptions = Object.assign({}, instance.conf.mocha.reporterOptions, reporterOptions); }; module.exports.xunit = function (context, instance) { masterEnd(context); if (!instance.conf.reports) { log('xunit: output.reports was not defined. Fallback to manual xunit config'); return; } log('xunit: start'); let instanceLabel = ''; for (let tag in instance.tags) { if (instance.tags.hasOwnProperty(tag)) { instanceLabel = instanceLabel + `:${tag}:${instance.tags[tag]}:`; } } instance.conf.reports = filenamify.path(`${instance.conf.reports}/${instanceLabel}`); let reporterOptions = { output: `${instance.conf.reports}/nemo-report.xml` }; instance.tags.reportFile = `${instance.conf.reports}/nemo-report.xml`.split(instance.conf.reportsBase)[1]; instance.conf.mocha.reporterOptions = Object.assign({}, instance.conf.mocha.reporterOptions, reporterOptions); log('xunit: config: %O', instance.conf.mocha); };