refactor app directory structure and add tests
This commit is contained in:
96
tests/node_modules/nightwatch/lib/runner/reporters/junit.js
generated
vendored
Normal file
96
tests/node_modules/nightwatch/lib/runner/reporters/junit.js
generated
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
* https://svn.jenkins-ci.org/trunk/hudson/dtkit/dtkit-format/dtkit-junit-model/src/main/resources/com/thalesgroup/dtkit/junit/model/xsd/junit-4.xsd
|
||||
* @type {exports}
|
||||
*/
|
||||
var fs = require('fs');
|
||||
var mkpath = require('mkpath');
|
||||
var path = require('path');
|
||||
var ejs = require('ejs');
|
||||
var util = require('util');
|
||||
var Utils = require('../../util/utils.js');
|
||||
|
||||
module.exports = new (function() {
|
||||
|
||||
var tmpl = __dirname + '/junit.xml.ejs';
|
||||
var tmplData;
|
||||
var globalResults;
|
||||
|
||||
function loadTemplate(cb) {
|
||||
if (tmplData) {
|
||||
cb(tmplData);
|
||||
return;
|
||||
}
|
||||
fs.readFile(tmpl, function (err, data) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
tmplData = data.toString();
|
||||
cb(tmplData);
|
||||
});
|
||||
}
|
||||
|
||||
function adaptAssertions(module) {
|
||||
Object.keys(module.completed).forEach(function(item) {
|
||||
var testcase = module.completed[item];
|
||||
var assertions = testcase.assertions;
|
||||
for (var i = 0; i < assertions.length; i++) {
|
||||
if (assertions[i].stackTrace) {
|
||||
assertions[i].stackTrace = Utils.stackTraceFilter(assertions[i].stackTrace.split('\n'));
|
||||
}
|
||||
}
|
||||
|
||||
if (testcase.failed > 0 && testcase.stackTrace) {
|
||||
var stackParts = testcase.stackTrace.split('\n');
|
||||
var errorMessage = stackParts.shift();
|
||||
testcase.stackTrace = Utils.stackTraceFilter(stackParts);
|
||||
testcase.message = errorMessage;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function writeReport(moduleKey, data, opts, callback) {
|
||||
var module = globalResults.modules[moduleKey];
|
||||
var pathParts = moduleKey.split(path.sep);
|
||||
var moduleName = pathParts.pop();
|
||||
var output_folder = opts.output_folder;
|
||||
|
||||
adaptAssertions(module);
|
||||
|
||||
var rendered = ejs.render(data, {
|
||||
locals: {
|
||||
module : module,
|
||||
moduleName : moduleName,
|
||||
systemerr : globalResults.errmessages.join('\n')
|
||||
}
|
||||
});
|
||||
|
||||
if (pathParts.length) {
|
||||
output_folder = path.join(output_folder, pathParts.join(path.sep));
|
||||
mkpath.sync(output_folder);
|
||||
}
|
||||
|
||||
var filename = path.join(output_folder, opts.filename_prefix + moduleName + '.xml');
|
||||
fs.writeFile(filename, rendered, function(err) {
|
||||
callback(err);
|
||||
globalResults.errmessages.length = 0;
|
||||
});
|
||||
}
|
||||
|
||||
this.write = function(results, options, callback) {
|
||||
globalResults = results;
|
||||
var keys = Object.keys(results.modules);
|
||||
|
||||
loadTemplate(function createReport(data) {
|
||||
var moduleKey = keys.shift();
|
||||
|
||||
writeReport(moduleKey, data, options, function(err) {
|
||||
if (err || (keys.length === 0)) {
|
||||
callback(err);
|
||||
} else {
|
||||
createReport(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
})();
|
32
tests/node_modules/nightwatch/lib/runner/reporters/junit.xml.ejs
generated
vendored
Normal file
32
tests/node_modules/nightwatch/lib/runner/reporters/junit.xml.ejs
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<testsuites errors="<%= module.errors %>"
|
||||
failures="<%= module.failures %>"
|
||||
tests="<%= module.tests %>">
|
||||
|
||||
<testsuite name="<%= moduleName %>"
|
||||
errors="<%= module.errors %>" failures="<%= module.failures %>" hostname="" id="" package="<%= module.group || moduleName %>" skipped="<%= (Array.isArray(module.skipped)) ? module.skipped.length : 0 %>"
|
||||
tests="<%= module.tests %>" time="<%= module.time %>" timestamp="<%= module.timestamp %>">
|
||||
<% for (var item in module.completed) {
|
||||
var testcase = module.completed[item];
|
||||
var assertions = testcase.assertions %>
|
||||
<testcase name="<%= item %>" time="<%= testcase.time %>" assertions="<%= assertions.length %>"><%
|
||||
for (var i = 0; i < assertions.length; i++) { %><% if (assertions[i].failure) { %> <failure message="<%= assertions[i].message %>"><%= assertions[i].stackTrace %></failure><% } %>
|
||||
<% if (assertions[i].screenshots && assertions[i].screenshots.length > 0) { %><system-out><% for (var j = 0; j < assertions[i].screenshots.length; j++) { %>[[ATTACHMENT|<%= assertions[i].screenshots[j] %>]]<% } %></system-out><% } %>
|
||||
<% }
|
||||
if (testcase.failed > 0 && testcase.stackTrace) {
|
||||
%><failure message="<%= testcase.message %>"><%= testcase.stackTrace %></failure><% } %>
|
||||
</testcase><% if (systemerr != '') {%>
|
||||
<system-err>
|
||||
<%= systemerr %>
|
||||
</system-err><% } %>
|
||||
<% } %>
|
||||
<% if (module.skipped && (module.skipped.length > 0)) { %>
|
||||
<% for (var j = 0; j < module.skipped.length; j++) { %>
|
||||
<testcase
|
||||
name="<%= module.skipped[j] %>">
|
||||
<skipped />
|
||||
</testcase>
|
||||
<% } %>
|
||||
<% } %>
|
||||
</testsuite>
|
||||
</testsuites>
|
Reference in New Issue
Block a user