启动appium并从shell脚本运行nunit test

时间:2015-08-20 23:06:13

标签: node.js appium

这是我的剧本:

node ${APPIUM_PATH}/bin/appium.js
nunit-console AppiumTest.dll

问题是,当appium启动时,它会控制控制台,我不能再运行任何命令,直到它停止。

或者我试过这个:

node ${APPIUM_PATH}/bin/appium.js &
nunit-console AppiumTest.dll

允许我同时运行2个命令,但在这种情况下它会忽略服务器启动所需的延迟。

1 个答案:

答案 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");

});