2017-08-11 35 views
0

我正在Mac上编写Nunit测试。我需要在测试执行时启动一个进程(服务器)。问题是测试不会完成,直到服务器进程不会退出。基本测试运行器卡住了,我需要重新启动Visual Studio。服务器进程从Visual Studio开始,但我希望它在终端中。即使在测试完成后,我也需要这个过程才能激活。在Mac上的Visual Studio 2017中启动进程

appProcess.StartInfo.UseShellExecute = true; 
       appProcess.StartInfo.FileName = "AppiumServer/node_modules/appium/appium"; 
       appProcess.StartInfo.Arguments = "--port " + port; 
       appProcess.Start(); 

Appium是一个带有节点AppiumServer/main.js的bash脚本。我试图启动它没有bash,但是当我设置fileName到终端和参数为“节点AppiuumServer/main.js --port”+端口,节点服务器将启动,但在错误的端口。你可以帮我吗?

appium庆典

#!/bin/sh 
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 

case `uname` in 
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;; 
esac 

if [ -x "$basedir/node" ]; then 
    "$basedir/node" "$basedir/../appium/build/lib/main.js" "[email protected]" 
    ret=$? 
else 
node "$basedir/../appium/build/lib/main.js" "[email protected]" 
ret=$? 
fi 
exit $ret 

回答

0

好,我找到了解决办法。编写osascript在终端中启动appium并从视觉工作室开始。然后你可以通过使用参数传递端口并在bash $ 0 $ 1等中访问它......像这样启动的服务器将在Visual Studio之外启动,并且不会阻止NUnity测试,并且使用osascript启动的终端将自动关闭。

#!/bin/bash 
osascript -e 'tell application "Terminal" to do script 
"'$1'/AppiumServer/node_modules/appium/appium --port '$2''"' 

其中$ 1是路径和$ 2端口。 “appium”是节点的bash脚本“路径main.js”

而在C#中象这样开始:

Process appProcess = new Process(); 
appProcess.StartInfo.UseShellExecute = true; 
appProcess.StartInfo.FileName = "path to osascript"; 
appProcess.StartInfo.Arguments = "path to appium script this will be in 
$1"+" 8000"; 
appProcess.Start(); 

8000是当然的端口,将在$ 2。希望它能帮助有类似问题的人。

相关问题