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' });
|
var arangoReporter = new Reporter({ format: 'progress' });
|
||||||
|
|
||||||
exports.status = function() {
|
exports.status = function() {
|
||||||
var status;
|
return !arangoReporter.hasErrors();
|
||||||
if (arangoReporter.hasErrors()) {
|
};
|
||||||
status = 1;
|
|
||||||
} else {
|
exports.executeTestSuite = function (specs) {
|
||||||
status = 0;
|
var jasmine = require('jasmine'),
|
||||||
}
|
_ = require('underscore'),
|
||||||
return status;
|
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);
|
env.addReporter(arangoReporter);
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
var internal = require("internal");
|
var internal = require("internal");
|
||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
var console = require("console");
|
var console = require("console");
|
||||||
|
var _ = require("underscore");
|
||||||
|
|
||||||
var TOTAL = 0;
|
var TOTAL = 0;
|
||||||
var PASSED = 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 result = true;
|
||||||
var unitTests = internal.unitTests();
|
|
||||||
|
|
||||||
for (var i = 0; i < unitTests.length; ++i) {
|
for (var i = 0; i < tests.length; ++i) {
|
||||||
var file = unitTests[i];
|
var file = tests[i];
|
||||||
print();
|
print();
|
||||||
print("running tests from file '" + file + "'");
|
print("running tests from file '" + file + "'");
|
||||||
|
|
||||||
|
@ -421,6 +421,41 @@ function RunCommandLineTests () {
|
||||||
internal.wait(0); // force GC
|
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);
|
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