mirror of https://gitee.com/bigwinds/arangodb
Refactor Test Runner
This commit is contained in:
parent
b5764513d9
commit
403cdd80b6
|
@ -1,76 +1,78 @@
|
|||
/*jslint indent: 2, nomen: true, maxlen: 120, regexp: true, todo: true */
|
||||
/*global module, require, exports, print */
|
||||
var RunTest = require('jsunity').runTest;
|
||||
var _ = require("underscore");
|
||||
var internal = require('internal');
|
||||
var fs = require('fs');
|
||||
|
||||
var runTest = require('jsunity').runTest,
|
||||
_ = require('underscore'),
|
||||
internal = require('internal'),
|
||||
fs = require('fs'),
|
||||
runJSUnityTests,
|
||||
runJasmineTests,
|
||||
runCommandLineTests;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief runs all jsunity tests
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function RunJSUnityTests (tests) {
|
||||
var result = true,
|
||||
i,
|
||||
file,
|
||||
ok;
|
||||
runJSUnityTests = function (tests) {
|
||||
'use strict';
|
||||
var result = true;
|
||||
|
||||
for (i = 0; i < tests.length; ++i) {
|
||||
file = tests[i];
|
||||
print();
|
||||
print("running tests from file '" + file + "'");
|
||||
_.each(tests, function (file) {
|
||||
print("\nRunning JSUnity test from file '" + file + "'");
|
||||
|
||||
try {
|
||||
ok = RunTest(file);
|
||||
result = result && ok;
|
||||
}
|
||||
catch (err) {
|
||||
result = result && runTest(file);
|
||||
} catch (err) {
|
||||
print("cannot run test file '" + file + "': " + err);
|
||||
print(err.stack);
|
||||
result = false;
|
||||
}
|
||||
|
||||
internal.wait(0); // force GC
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief runs all jsunity tests
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function RunJasmineTests (testFiles) {
|
||||
var result = true;
|
||||
runJasmineTests = function (testFiles) {
|
||||
'use strict';
|
||||
var result = true,
|
||||
tests,
|
||||
jasmine;
|
||||
|
||||
if (testFiles.length > 0) {
|
||||
var tests = _.map(testFiles, function (x) { return fs.read(x); }),
|
||||
jasmine = require('jasmine');
|
||||
tests = _.map(testFiles, function (x) { return fs.read(x); });
|
||||
jasmine = require('jasmine');
|
||||
|
||||
print('\nRunning Jasmine Tests: ' + testFiles.join(', '));
|
||||
result = jasmine.executeTestSuite(tests);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief runs tests from command-line
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function runCommandLineTests () {
|
||||
runCommandLineTests = function () {
|
||||
'use strict';
|
||||
var result = true,
|
||||
unitTests = internal.unitTests(),
|
||||
isSpecRegEx = /.+spec.js/,
|
||||
isSpec = function(unitTest) {
|
||||
isSpec = function (unitTest) {
|
||||
return isSpecRegEx.test(unitTest);
|
||||
},
|
||||
jasmine = _.filter(unitTests, isSpec),
|
||||
jsUnity = _.reject(unitTests, isSpec);
|
||||
|
||||
result = RunJSUnityTests(jsUnity) && RunJasmineTests(jasmine);
|
||||
result = runJSUnityTests(jsUnity) && runJasmineTests(jasmine);
|
||||
|
||||
internal.setUnitTestsResult(result);
|
||||
}
|
||||
};
|
||||
|
||||
exports.runCommandLineTests = runCommandLineTests;
|
||||
|
|
Loading…
Reference in New Issue