spectron
Version:
Easily test your Electron apps using ChromeDriver and WebdriverIO.
37 lines (31 loc) • 1.05 kB
JavaScript
const ChildProcess = require('child_process');
let executablePath = null;
const appArgs = [];
const chromeArgs = [];
process.argv.slice(2).forEach(function (arg) {
const indexOfEqualSign = arg.indexOf('=');
if (indexOfEqualSign === -1) {
chromeArgs.push(arg);
return;
}
const name = arg.substring(0, indexOfEqualSign);
const value = arg.substring(indexOfEqualSign + 1);
if (name === '--spectron-path') {
executablePath = value;
} else if (name.indexOf('--spectron-arg') === 0) {
appArgs[Number(name.substring(14))] = value;
} else if (name.indexOf('--spectron-env') === 0) {
process.env[name.substring(15)] = value;
} else if (name.indexOf('--spectron-') !== 0) {
chromeArgs.push(arg);
}
});
const args = appArgs.concat(chromeArgs);
const appProcess = ChildProcess.spawn(executablePath, args);
appProcess.on('exit', function (code) {
process.exit(code);
});
appProcess.stderr.pipe(process.stdout);
appProcess.stdout.pipe(process.stdout);
appProcess.stdin.pipe(process.stdin);