我在 Bamboo 服务器上的 EC2 实例上运行命令时遇到问题。我有一个从 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 作为后台进程。这会引发 NoSuchWindowException,因为没有显示浏览器...
我可以在本地实例上的 PowerShell 中运行相同的命令:(*请注意,这是我粘贴到运行命令控制台以生成上述代码的相同命令。)
$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 命令有什么区别?它不应该做同样的事情吗?