1
0
Fork 0

add setUpAll, tearDownAll

This commit is contained in:
jsteemann 2016-09-23 12:08:39 +02:00
parent 33c54a9e7b
commit 0b7d73bf3b
3 changed files with 114 additions and 72 deletions

View File

@ -99,6 +99,8 @@ function Run (testsuite) {
var tests = [];
var setUp;
var tearDown;
var setUpAll;
var tearDownAll;
if (definition.hasOwnProperty('setUp')) {
setUp = definition.setUp;
@ -108,16 +110,26 @@ function Run (testsuite) {
tearDown = definition.tearDown;
}
if (definition.hasOwnProperty('setUpAll')) {
setUpAll = definition.setUpAll;
}
if (definition.hasOwnProperty('tearDownAll')) {
tearDownAll = definition.tearDownAll;
}
var scope = {};
scope.setUp = setUp;
scope.tearDown = tearDown;
scope.setUpAll = setUpAll;
scope.tearDownAll = tearDownAll;
for (var key in definition) {
if (key.indexOf('test') === 0) {
var test = { name: key, fn: definition[key]};
tests.push(test);
} else if (key !== 'tearDown' && key !== 'setUp') {
} else if (key !== 'tearDown' && key !== 'setUp' && key !== 'tearDownAll' && key !== 'setUpAll') {
console.error('unknown function: %s', key);
}
}
@ -127,6 +139,8 @@ function Run (testsuite) {
suite.tests = tests;
suite.setUp = setUp;
suite.tearDown = tearDown;
suite.setUpAll = setUpAll;
suite.tearDownAll = tearDownAll;
var result = jsUnity.run(suite);
TOTAL += result.total;
@ -148,7 +162,6 @@ function Run (testsuite) {
// //////////////////////////////////////////////////////////////////////////////
function Done (suiteName) {
// console.log("%d total, %d passed, %d failed, %d ms", TOTAL, PASSED, FAILED, DURATION)
internal.printf('%d total, %d passed, %d failed, %d ms', TOTAL, PASSED, FAILED, DURATION);
print();

View File

@ -322,7 +322,7 @@ var jsUnity = exports.jsUnity = (function () {
if (typeof fn === "function") {
if (/^test/.test(name)) {
suite.tests.push({ name: name, fn: fn });
} else if (/^(setUp|tearDown)$/.test(name)) {
} else if (/^(setUp|tearDown|setUpAll|tearDownAll)$/.test(name)) {
suite[name] = fn;
}
}
@ -399,6 +399,8 @@ var jsUnity = exports.jsUnity = (function () {
this.tests = [];
this.setUp = undefined;
this.tearDown = undefined;
this.setUpAll = undefined;
this.tearDownAll = undefined;
},
TestResults: function () {
@ -486,63 +488,90 @@ var jsUnity = exports.jsUnity = (function () {
var setUp = getFixtureUtil("setUp", suite);
var tearDown = getFixtureUtil("tearDown", suite);
var setUpAll = getFixtureUtil("setUpAll", suite);
var tearDownAll = getFixtureUtil("tearDownAll", suite);
var runSuite;
for (var j = 0; j < cnt; j++) {
var test = suite.tests[j];
try {
setUpAll(suite.suiteName);
runSuite = true;
} catch (setUpAllError) {
runSuite = false;
if (setUpAllError.stack !== undefined) {
this.results.fail(0, suite.suiteName,
setUpAllError + " - " + String(setUpAllError.stack) +
" - setUpAll failed");
}
}
counter = 0;
if (runSuite) {
for (var j = 0; j < cnt; j++) {
var test = suite.tests[j];
try {
setUp(test.name);
test.fn.call(suite.scope, test.name);
tearDown(test.name);
counter = 0;
this.results.pass(j + 1, test.name);
results.passed++;
} catch (e) {
try {
tearDown(test.name); // if tearDown above throws exc, will call again!
}
catch (x) {
var xstack;
if (x.stack !== undefined) {
xstack = x.stack;
setUp(test.name);
test.fn.call(suite.scope, test.name);
tearDown(test.name);
this.results.pass(j + 1, test.name);
results.passed++;
} catch (e) {
try {
tearDown(test.name); // if tearDown above throws exc, will call again!
}
catch (x) {
var xstack;
if (x.stack !== undefined) {
xstack = x.stack;
}
if (e.stack !== undefined) {
this.results.fail(j + 1,
test.name,
e + " - " + String(e.stack) +
" - teardown failed - " +
x +
" - " +
xstack);
}
else {
this.results.fail(j + 1,
test.name,
e +
" - teardown failed - " +
x +
" - " +
xstack);
}
this.log.error("Teardown failed (again): " +
x +
" - " +
xstack +
" aborting tests");
i = arguments.length; j = cnt; break;
}
if (e.stack !== undefined) {
this.results.fail(j + 1,
test.name,
e + " - " + String(e.stack) +
" - teardown failed - " +
x +
" - " +
xstack);
this.results.fail(j + 1, test.name, e + " - " + String(e.stack));
}
else {
this.results.fail(j + 1,
test.name,
e +
" - teardown failed - " +
x +
" - " +
xstack);
this.results.fail(j + 1, test.name, e);
}
this.log.error("Teardown failed (again): " +
x +
" - " +
xstack +
" aborting tests");
i = arguments.length; j = cnt; break;
}
}
}
if (e.stack !== undefined) {
this.results.fail(j + 1, test.name, e + " - " + String(e.stack));
}
else {
this.results.fail(j + 1, test.name, e);
}
try {
tearDownAll(suite.suiteName);
} catch (tearDownAllError) {
if (tearDownAllError.stack !== undefined) {
this.results.fail(0, suite.suiteName,
tearDownAllError + " - " + String(tearDownAllError.stack) +
" - tearDownAll failed");
}
}
}

View File

@ -101,7 +101,7 @@ function namedGraphSuite () {
return {
setUp: function() {
setUpAll: function() {
opts.allPlans = true;
opts.verbosePlans = true;
cleanup();
@ -114,7 +114,7 @@ function namedGraphSuite () {
g = gm._create(gn, [gm._relation(en, vn, vn)]);
},
tearDown: function () {
tearDownAll: function () {
gm._drop(gn);
cleanup();
},
@ -432,7 +432,7 @@ function multiCollectionGraphSuite () {
return {
setUp: function() {
setUpAll: function() {
opts.allPlans = true;
opts.verbosePlans = true;
cleanup();
@ -449,7 +449,7 @@ function multiCollectionGraphSuite () {
db[en2].save(vn2 + "/G", vn + "/D", {});
},
tearDown: function() {
tearDownAll: function() {
gm._drop(gn);
db._drop(vn2);
db._drop(en2);
@ -946,7 +946,7 @@ function multiEdgeCollectionGraphSuite () {
return {
setUp: function() {
setUpAll: function() {
opts.allPlans = true;
opts.verbosePlans = true;
cleanup();
@ -974,7 +974,7 @@ function multiEdgeCollectionGraphSuite () {
edge.EA = ec2.save(vertex.E, vertex.A, {})._id;
},
tearDown: function() {
tearDownAll: function() {
gm._drop(gn);
db._drop(vn);
db._drop(en);
@ -1009,7 +1009,7 @@ function potentialErrorsSuite () {
return {
setUp: function () {
setUpAll: function () {
cleanup();
vc = db._create(vn);
ec = db._createEdgeCollection(en);
@ -1020,7 +1020,7 @@ function potentialErrorsSuite () {
ec.save(vertex.B, vertex.C, {});
},
tearDown: cleanup,
tearDownAll: cleanup,
testNonIntegerSteps: function () {
var query = "FOR x IN 2.5 OUTBOUND @startId @@eCol RETURN x";
@ -1446,7 +1446,7 @@ function optimizeInSuite () {
return {
setUp: function () {
setUpAll: function () {
cleanup();
vc = db._create(vn, {numberOfShards: 4});
ec = db._createEdgeCollection(en, {numberOfShards: 4});
@ -1462,7 +1462,7 @@ function optimizeInSuite () {
}
},
tearDown: cleanup,
tearDownAll: cleanup,
testSingleOptimize: function () {
var vertexQuery = `WITH ${vn}
@ -1660,7 +1660,7 @@ function complexFilteringSuite () {
***********************************************************************/
return {
setUp: function() {
setUpAll: function() {
cleanup();
var vc = db._create(vn, {numberOfShards: 4});
var ec = db._createEdgeCollection(en, {numberOfShards: 4});
@ -1688,7 +1688,7 @@ function complexFilteringSuite () {
edge.Tri31 = ec.save(vertex.Tri3, vertex.Tri1, {isLoop: true, lateLoop: true})._id;
},
tearDown: cleanup,
tearDownAll: cleanup,
testVertexEarlyPruneHighDepth: function () {
var query = `WITH ${vn}
@ -2071,7 +2071,7 @@ function brokenGraphSuite () {
return {
setUp: function () {
setUpAll: function () {
cleanup();
vc = db._create(vn, {numberOfShards: 4});
ec = db._createEdgeCollection(en, {numberOfShards: 4});
@ -2083,7 +2083,7 @@ function brokenGraphSuite () {
ec.save(vn + "/missing", vertex.B, {});
},
tearDown: cleanup,
tearDownAll: cleanup,
testRequestMissingVertex: function () {
var query = `WITH ${vn} FOR x IN OUTBOUND @startId @@eCol RETURN x._id`;
@ -2185,7 +2185,7 @@ function multiEdgeDirectionSuite () {
return {
setUp: function () {
setUpAll: function () {
cleanup();
db._drop(en2);
@ -2216,7 +2216,7 @@ function multiEdgeDirectionSuite () {
ec.save(vertex.E, vertex.F, {});
},
tearDown: function () {
tearDownAll: function () {
cleanup();
db._drop(en2);
},
@ -2315,7 +2315,7 @@ function subQuerySuite () {
*
*/
setUp: function () {
setUpAll: function () {
cleanup();
vc = db._create(vn, {numberOfShards: 4});
ec = db._createEdgeCollection(en, {numberOfShards: 4});
@ -2374,7 +2374,7 @@ function subQuerySuite () {
ec.save(vertex.D, vertex.D5, {});
},
tearDown: function () {
tearDownAll: function () {
try {
gm._drop(gn);
} catch (e) {
@ -2659,7 +2659,7 @@ function optimizeQuantifierSuite() {
let edges = {};
return {
setUp: function () {
setUpAll: function () {
cleanup();
vc = db._create(vn, {numberOfShards: 4});
ec = db._createEdgeCollection(en, {numberOfShards: 4});
@ -2687,7 +2687,7 @@ function optimizeQuantifierSuite() {
gm._create(gn, [gm._relation(en, vn, vn)]);
},
tearDown: function () {
tearDownAll: function () {
try {
gm._drop(gn);
} catch (e) {