mirror of https://gitee.com/bigwinds/arangodb
75 lines
2.1 KiB
JavaScript
75 lines
2.1 KiB
JavaScript
/*jslint indent: 2, nomen: true, maxlen: 120, regexp: true, todo: true */
|
|
/*global module, require, exports, print */
|
|
|
|
var runTest = require('jsunity').runTest,
|
|
_ = require('underscore'),
|
|
internal = require('internal'),
|
|
runJSUnityTests,
|
|
runJasmineTests,
|
|
runCommandLineTests;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @brief runs all jsunity tests
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
runJSUnityTests = function (tests) {
|
|
'use strict';
|
|
var result = true;
|
|
|
|
_.each(tests, function (file) {
|
|
print("\nRunning JSUnity test from file '" + file + "'");
|
|
|
|
try {
|
|
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
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
runJasmineTests = function (testFiles, options) {
|
|
'use strict';
|
|
var result = true;
|
|
|
|
if (testFiles.length > 0) {
|
|
print('\nRunning Jasmine Tests: ' + testFiles.join(', '));
|
|
result = require('jasmine').executeTestSuite(testFiles, options);
|
|
}
|
|
|
|
return result;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @brief runs tests from command-line
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
runCommandLineTests = function (opts) {
|
|
'use strict';
|
|
var result = true,
|
|
options = opts || {},
|
|
jasmineReportFormat = options.jasmineReportFormat || 'progress',
|
|
unitTests = internal.unitTests(),
|
|
isSpecRegEx = /.+spec.js/,
|
|
isSpec = function (unitTest) {
|
|
return isSpecRegEx.test(unitTest);
|
|
},
|
|
jasmine = _.filter(unitTests, isSpec),
|
|
jsUnity = _.reject(unitTests, isSpec);
|
|
|
|
result = runJSUnityTests(jsUnity) && runJasmineTests(jasmine, { format: jasmineReportFormat });
|
|
|
|
internal.setUnitTestsResult(result);
|
|
};
|
|
|
|
exports.runCommandLineTests = runCommandLineTests;
|