nightwatch-html-reporter
Version:
Generates an HTML view of the Nightwatch.js test reports by either parsing the XML files generated by Nightwatch or by using the Nightwatch reporter options.
102 lines (92 loc) • 3.34 kB
JavaScript
var reportObjects = require('./mockdata/nightwatchReportObjects.js');
var normalize = require('../lib/normalize.js');
var getOutputFilename = require('../lib/outputFilename.js').getOutputFilename;
var insertSuiteNameIntoFilename = require('../lib/outputFilename.js').insertSuiteNameIntoFilename;
var path = require('path');
/*
======== A Handy Little Nodeunit Reference ========
https://github.com/caolan/nodeunit
Test methods:
test.expect(numAssertions)
test.done()
Test assertions:
test.ok(value, [message])
test.equal(actual, expected, [message])
test.notEqual(actual, expected, [message])
test.deepEqual(actual, expected, [message])
test.notDeepEqual(actual, expected, [message])
test.strictEqual(actual, expected, [message])
test.notStrictEqual(actual, expected, [message])
test.throws(block, [error], [message])
test.doesNotThrow(block, [error], [message])
test.ifError(value)
*/
exports.reportGenerator = {
setUp: function(done) {
normalize(null, reportObjects.withOneFailure, function(err, normal) {
this.normalized = normal;
done();
}.bind(this));
},
'file location': function(test) {
test.expect(1);
var opts = {
reportsDirectory: __dirname,
reportFilename: 'testfilename.html'
};
var filename = getOutputFilename(opts, this.normalized);
test.equal(filename, path.join(__dirname, 'testfilename.html'));
test.done();
},
'file location relative': function(test) {
test.expect(1);
var opts = {
reportsDirectory: __dirname,
reportFilename: '../outputTest/testfilename.html'
};
var filename = getOutputFilename(opts, this.normalized);
test.equal(filename, path.join(__dirname, '..', 'outputTest', 'testfilename.html'));
test.done();
},
'generates a unique filename': function(test) {
var opts = {
reportsDirectory: __dirname,
reportFilename: 'testfilename.html',
uniqueFilename: true
};
var filename = getOutputFilename(opts, this.normalized);
test.ok(filename.match(/testfilename\d+\.html/));
test.done();
},
'generates a unique relative filename': function(test) {
var opts = {
reportsDirectory: __dirname,
reportFilename: '../outputTest/testfilename.html',
uniqueFilename: true
};
var filename = getOutputFilename(opts, this.normalized);
test.ok(filename.match(/testfilename\d+\.html/));
test.done();
},
'inserts suite name into filename': function(test) {
var opts = {
reportsDirectory: __dirname,
reportFilename: '../outputTest/testfilename.html'
};
var filename = getOutputFilename(opts, this.normalized);
filename = insertSuiteNameIntoFilename(filename, 'SpecialSuiteName');
test.ok(filename.indexOf('testfilename-SpecialSuiteName.html') != -1);
test.done();
},
'inserts suite name into filename removing group slashes': function(test) {
var opts = {
reportsDirectory: __dirname,
reportFilename: '../outputTest/testfilename.html'
};
var filename = getOutputFilename(opts, this.normalized);
filename = insertSuiteNameIntoFilename(filename, 'MyGroup/SpecialSuiteName');
console.log(filename);
test.ok(filename.indexOf('testfilename-MyGroup-SpecialSuiteName.html') != -1);
test.done();
}
};