2017-08-18 12 views
0

私のBambooサーバーからEC2インスタンスでコマンドを実行する際に問題が発生しています。 私は、AWSコンソールの実行コマンドから生成されたコマンドを持っています。私はそのコマンドを私の竹サーバーのスクリプトに置き、AWS実行コマンドがサーバー上でローカルで実行されているものと異なる動作

aws ssm send-command --document-name "AWS-RunPowerShellScript" --targets '{\"Key\":\"tag:Name\",\"Values\":[\"Auto-Scaling-Group\"]}' --parameters '{\"commands\":[\"$fileEXE = \\\"C:\\\\Program Files (x86)\\\\NUnit\\\\NUnit.ConsoleRunner.3.7.0\\\\tools\\\\nunit3-console.exe\\\\\\\"\",\"$testDll = \\\"C:\\\\TestFramework\\\\TestFramework\\\\Tests\\\\bin\\\\Debug\\\\TESTS.dll\\\"\",\"[System.Diagnostics.Process]::Start($fileEXE,$testDll)\"]}' --comment "Run Test UI Testing" --timeout-seconds 600 --region us-east-1 

テストを実行します。しかし、Chrome.exeブラウザとchromedriver.exeをバックグラウンドプロセスとして実行します。 (*これは私が生成するファイル名を指定して実行コマンドコンソールに貼り付けるのと同じコマンドであることに注意してください:現れて何のブラウザが存在しないので、これは私がローカルインスタンス上でPowerShellで同じコマンドを実行することができます...

をNoSuchWindowExceptionをスローしますコード)。

$fileEXE = "C:\Program Files (x86)\NUnit\NUnit.ConsoleRunner.3.7.0\tools\nunit3-console.exe\" 
$testDll = "C:\TestFramework\TestFramework\Tests\bin\Debug\TESTS.dll" 
[System.Diagnostics.Process]::Start($fileEXE,$testDll) 

うまく動作します。 chromedriver.exeはバックグラウンドプロセスで、chrome.exe(ブラウザ)は通常のように動作する通常のアプリケーションです。

私の問題は、Run Commandがテストプログラムをどのように実行しているのかと思います。

実行コマンド(send-command)とPowerShellコマンドをローカルで実行する違いは何ですか?同じことをしてはいけませんか?

+0

バンプ...お助けください!私は困惑している! –

+0

まだこのことに気づいていません...何もありませんか?誰も助けることができない? –

答えて

0

私は、引用符とそれらがどのようにエスケープされているかの方法が混乱していると思います。

参照:How to escape a double quote inside double quotes?

このバージョンでは、はるかに簡単になります。

CMD='$fileEXE = "C:\Program Files (x86)\NUnit\NUnit.ConsoleRunner.3.7.0\tools\nunit3-console.exe";' 
CMD+='$testDll = "C:\TestFramework\TestFramework\Tests\bin\Debug\TESTS.dll";' 
CMD+='[System.Diagnostics.Process]::Start($fileEXE,$testDll);' 

aws ssm send-command --document-name "AWS-RunPowerShellScript" \ 
    --filters "Name=tag:Name,Values=Auto-Scaling-Group" \ 
    --comment "Run Test UI Testing" --timeout-seconds 600 --region us-east-1 \ 
    --parameters commands="'$CMD'" 

注:bashシェルでそれを実行します。

関連する問題