mirror of https://gitee.com/bigwinds/arangodb
Execute Jasmine specs via arangod --javascript.unit-test
This commit is contained in:
parent
b0ce561546
commit
db5470ae6c
|
@ -73,13 +73,25 @@ env.addReporter(jsApiReporter);
|
|||
var arangoReporter = new Reporter({ format: 'progress' });
|
||||
|
||||
exports.status = function() {
|
||||
var status;
|
||||
if (arangoReporter.hasErrors()) {
|
||||
status = 1;
|
||||
} else {
|
||||
status = 0;
|
||||
}
|
||||
return status;
|
||||
return !arangoReporter.hasErrors();
|
||||
};
|
||||
|
||||
exports.executeTestSuite = function (specs) {
|
||||
var jasmine = require('jasmine'),
|
||||
_ = require('underscore'),
|
||||
describe = jasmine.describe,
|
||||
it = jasmine.it,
|
||||
expect = jasmine.expect,
|
||||
fs = require('fs'),
|
||||
file,
|
||||
status;
|
||||
|
||||
_.each(specs, function (spec) {
|
||||
eval(spec);
|
||||
});
|
||||
|
||||
jasmine.execute();
|
||||
return jasmine.status();
|
||||
};
|
||||
|
||||
env.addReporter(arangoReporter);
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
var internal = require("internal");
|
||||
var fs = require("fs");
|
||||
var console = require("console");
|
||||
var _ = require("underscore");
|
||||
|
||||
var TOTAL = 0;
|
||||
var PASSED = 0;
|
||||
|
@ -395,15 +396,14 @@ function RunCoverage (path, files) {
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief runs tests from command-line
|
||||
/// @brief runs all jsunity tests
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function RunCommandLineTests () {
|
||||
function RunJSUnityTests (tests) {
|
||||
var result = true;
|
||||
var unitTests = internal.unitTests();
|
||||
|
||||
for (var i = 0; i < unitTests.length; ++i) {
|
||||
var file = unitTests[i];
|
||||
for (var i = 0; i < tests.length; ++i) {
|
||||
var file = tests[i];
|
||||
print();
|
||||
print("running tests from file '" + file + "'");
|
||||
|
||||
|
@ -421,6 +421,41 @@ function RunCommandLineTests () {
|
|||
internal.wait(0); // force GC
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief runs all jsunity tests
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function RunJasmineTests (testFiles) {
|
||||
if (testFiles.length > 0) {
|
||||
var tests = _.map(testFiles, function (x) { return fs.read(x); }),
|
||||
jasmine = require('jasmine');
|
||||
|
||||
print('\nRunning Jasmine Tests: ' + testFiles.join(', '));
|
||||
return jasmine.executeTestSuite(tests);
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief runs tests from command-line
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function RunCommandLineTests () {
|
||||
var result = true,
|
||||
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);
|
||||
|
||||
internal.setUnitTestsResult(result);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
/*jslint indent: 2, nomen: true, maxlen: 120, regexp: true, todo: true, evil: true */
|
||||
/*global module, require, exports, print */
|
||||
|
||||
/** Usage
|
||||
*
|
||||
* ./bin/arangod --log.level warning --javascript.script scripts/execute-spec.js --javascript.script-parameter js/server/tests/shell-example-spec.js --javascript.script-parameter js/server/tests/shell-example-spec-2.js /tmp/tests
|
||||
*
|
||||
*/
|
||||
|
||||
function main(argv) {
|
||||
var jasmine = require('jasmine'),
|
||||
_ = require('underscore'),
|
||||
describe = jasmine.describe,
|
||||
it = jasmine.it,
|
||||
expect = jasmine.expect,
|
||||
fs = require('fs'),
|
||||
file,
|
||||
status;
|
||||
|
||||
if (argv.length >= 2) {
|
||||
_.each(argv.slice(1), function (fileName) {
|
||||
file = fs.read(fileName);
|
||||
eval(file);
|
||||
});
|
||||
|
||||
jasmine.execute();
|
||||
status = jasmine.status();
|
||||
} else {
|
||||
print('Provide exactly one filename');
|
||||
status = 1;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
Loading…
Reference in New Issue