azure-cli
Version:
Microsoft Azure Cross Platform Command Line tool
85 lines (68 loc) • 2.15 kB
JavaScript
//
// Copyright (c) Microsoft and contributors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//
require('streamline').register();
var fs = require('fs');
var profile = require('../lib/util/profile');
var testLogger = require('../test/framework/test-logger');
var args = (process.ARGV || process.argv);
var coverageOption = Array.prototype.indexOf.call(args, '-coverage');
if (coverageOption !== -1) {
args.splice(coverageOption, 1);
}
var reporter = '../../../test/framework/xcli-test-reporter';
var xunitOption = Array.prototype.indexOf.call(args, '-xunit');
if (xunitOption !== -1) {
reporter = 'xunit';
args.splice(xunitOption, 1);
}
var mcOption = Array.prototype.indexOf.call(args, '--mc') !== -1;
var testList = args.pop();
var fileContent;
var root = false;
if (!fs.existsSync) {
fs.existsSync = require('path').existsSync;
}
if (fs.existsSync(testList)) {
fileContent = fs.readFileSync(testList).toString();
} else {
fileContent = fs.readFileSync('./test/' + testList).toString();
root = true;
}
var files = fileContent.split('\n');
args.push('-u');
args.push('tdd');
// TODO: remove this timeout once tests are faster
args.push('-t');
args.push('500000');
files.forEach(function (file) {
if (file.length > 0 && file.trim()[0] !== '#') {
// trim trailing \r if it exists
file = file.replace('\r', '');
if (root) {
args.push('test/' + file);
} else {
args.push(file);
}
}
});
if (coverageOption !== -1) {
args.push('-R');
args.push('html-cov');
} else {
args.push('-R');
args.push(reporter);
}
require('../node_modules/mocha/bin/mocha');