2017-08-11 60 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。希望它能幫助有類似問題的人。

相關問題