最近工作中需要用到nodejs編寫腳本來順序執行自動化測試用例,編寫代碼如下:
var runCommand = function (command){
child_process.exec(command,function (error, stdout, stderr) {
if (stdout !== null) {
console.log('exec stdout: ' + stdout);
}
if (error !== null) {
console.log('exec error: ' + error);
}
});
};
for (var i = 0; i < path.length; i++) {
if (i !== 0) {
if (argv.report === 'true') {
runCommand('mocha ./');
};
};
};
但是nodejs的child_process模塊執行是異步的,多個命令同時執行會失敗。但是自動化測試的服務
不支持同時執行,導致測試多個進程失敗。
最后在網上找到了nodejs的shelljs模塊,可以解決問題:
require('shelljs/global');
for (var i = 0; i < path.length; i++) {
if (exec('mocha ./').code !== 0) {
echo('Error: Git commit failed');
exit(1);
}
};