这是我的剧本:
node ${APPIUM_PATH}/bin/appium.js
nunit-console AppiumTest.dll
问题是,当appium启动时,它会控制控制台,我不能再运行任何命令,直到它停止。
或者我试过这个:
node ${APPIUM_PATH}/bin/appium.js &
nunit-console AppiumTest.dll
允许我同时运行2个命令,但在这种情况下它会忽略服务器启动所需的延迟。
答案 0 :(得分:0)
这里的问题是,在Appium监听器启动后,nunit进程应该启动。所以你要听第一个命令的输出,然后调用nunit。下面是使用javascript的nodejs版本,因为在nodejs中很容易从一个进程监听输出流并启动另一个进程。
以下是使用nodejs的语法。由于appium已经安装了nodejs,因此在appium目录中创建一个js文件(例如:AutoStart.js)并运行node AutoStart.js
下面是git hub上的代码 - >链接enter link description here
var sys = require('sys')
var exec = require('child_process').exec;
var child;
child = exec("node bin/appium.js",function(error,stdout,stderr){
if (error !== null) {
console.log('exec error: ' + error);
}
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
});
child.stdout.on('data',
function(data){
var buff = new Buffer(data).toString('utf8');
console.log( buff);
if(buff.match(/Appium REST http interface listener/))
{
console.log("Server is started");
var nunitProcess = exec("nunit-console AppiumTest.dll", function(error,stdout,stderr){
if (error !== null) {
console.log('error starting nUnit ' + error);
}
})
}
else console.log("not started");
});