58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
/*global env: true */
|
|
/*
|
|
* Test Steps:
|
|
* 1. Get Jasmine
|
|
* 2. Get the test options
|
|
* 3. Get the list of directories to run tests from
|
|
* 4. Run Jasmine on each directory
|
|
*/
|
|
var fs = require('jsdoc/fs');
|
|
var jasmine = require('test/jasmine-jsdoc');
|
|
var path = require('path');
|
|
|
|
fs.existsSync = fs.existsSync || path.existsSync;
|
|
|
|
var hasOwnProp = Object.prototype.hasOwnProperty;
|
|
|
|
for (var key in jasmine) {
|
|
if (hasOwnProp.call(jasmine, key)) {
|
|
this[key] = jasmine[key];
|
|
}
|
|
}
|
|
|
|
var opts = {
|
|
verbose: env.opts.verbose || false,
|
|
showColors: env.opts.nocolor === true ? false : true
|
|
};
|
|
|
|
var extensions = 'js';
|
|
var match = env.opts.match || '.';
|
|
if (match instanceof Array) {
|
|
match = match.join("|");
|
|
}
|
|
opts.matcher = new RegExp("(" + match + ")\\.(" + extensions + ")$", 'i');
|
|
|
|
var specFolders = ['test/specs', 'plugins/test/specs'];
|
|
|
|
var failedCount = 0;
|
|
var index = 0;
|
|
|
|
var onComplete;
|
|
|
|
function runNextFolder() {
|
|
if (index < specFolders.length) {
|
|
jasmine.executeSpecsInFolder(specFolders[index], onComplete, opts);
|
|
}
|
|
}
|
|
|
|
onComplete = function(runner, log) {
|
|
if (runner.results().failedCount !== 0) {
|
|
failedCount += runner.results().failedCount;
|
|
}
|
|
index++;
|
|
runNextFolder();
|
|
};
|
|
|
|
runNextFolder();
|
|
process.exit(failedCount);
|