2017-08-11 6 views
0

MacでNunitテストを書いています。テストが実行されているときにプロセス(サーバー)を開始する必要があります。問題は、サーバープロセスが終了しない限りテストが終了しないことです。基本的にランナーがテストされていないので、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をTerminalと引数に "node AppiuumServer/main.js --port" + portに設定すると、ノードサーバーは起動しますが間違ったポートで起動します。手伝って頂けますか?

appiumのbashの

#!/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

[OK]を私は解決策を見つけました。ターミナルでappiumを起動し、Visual Studioから起動するためにosascriptを書いてください。引数を使ってポートを渡し、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は」

を「main.jsするパス」ノードとのbashスクリプトであり、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になります当然のポートです。似たような問題を抱えている人を助けてくれることを願います

関連する問題