You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.2 KiB
JavaScript
73 lines
1.2 KiB
JavaScript
4 years ago
|
const mri = require("mri");
|
||
|
const { spawn } = require("child_process");
|
||
|
|
||
|
const argv = process.argv.slice(2);
|
||
|
const args = mri(argv);
|
||
|
|
||
|
const bin_dir = "./node_modules/.bin/";
|
||
|
|
||
|
const mocha = bin_dir + "mocha";
|
||
|
|
||
|
let mocha_options = [
|
||
|
"--recursive",
|
||
|
"--timeout=10000",
|
||
|
"--require",
|
||
|
"source-map-support/register",
|
||
|
];
|
||
|
|
||
|
if (args["test-report"]) {
|
||
|
mocha_options = [
|
||
|
...mocha_options,
|
||
|
// "--require",
|
||
|
// "ts-node/register",
|
||
|
// "--require",
|
||
|
// "./src/http/type-overrides.ts",
|
||
|
"--reporter",
|
||
|
"xunit",
|
||
|
"--reporter-option",
|
||
|
"output=.xunit",
|
||
|
];
|
||
|
}
|
||
|
|
||
|
const mocha_files = ["dist/**/*.test.js"];
|
||
|
|
||
|
let command = [mocha, ...mocha_options, ...mocha_files];
|
||
|
|
||
|
if (args.cover) {
|
||
|
const nyc = [
|
||
|
bin_dir + "nyc",
|
||
|
"-all",
|
||
|
"--exclude",
|
||
|
"src/front",
|
||
|
"--exclude",
|
||
|
"dist",
|
||
|
"--source-map",
|
||
|
"false",
|
||
|
];
|
||
|
if (args["cover-html"]) {
|
||
|
nyc.push("--reporter", "lcov");
|
||
|
} else {
|
||
|
nyc.push("--reporter", "clover");
|
||
|
}
|
||
|
command = [...nyc, ...command];
|
||
|
}
|
||
|
|
||
|
if (args.debug) {
|
||
|
command = ["node", "inspect", ...command];
|
||
|
}
|
||
|
|
||
|
console.log("spawning mocha...", command);
|
||
|
|
||
|
const proc = spawn(command[0], command.slice(1), {
|
||
|
stdio: "inherit",
|
||
|
env: process.env,
|
||
|
});
|
||
|
|
||
|
proc.on("exit", function (code) {
|
||
|
if (args["test-report"]) {
|
||
|
process.exit(0);
|
||
|
} else {
|
||
|
process.exit(code);
|
||
|
}
|
||
|
});
|