#tfs #continuous-integration #pipeline #devops
#tfs #непрерывная интеграция #конвейер #devops
Вопрос:
Я пытаюсь написать шаги сборки в определении сборки TFS, одним из которых является вызов CMD, запускающего bat-скрипт SoapUI, расположенный в файловой системе:
C: «Program Files» SmartBear SoapUI-5.2.1bin testrunner
Этот сценарий bat выполняет тестовые шаги с файлом * .xml в репозитории.
После выполнения этого шага TFS пытается завершить отправку скрипта SIGBREAK (CTRL_C), а затем этап CMD останавливается с сообщением «Завершить пакетное задание (Y / N)?».
Проблема, безусловно, в этом сценарии bat, потому что другие сценарии работают нормально. То же самое происходит и с Batch и Powershell. Могу ли я предотвратить такое поведение в TFS?
PS Я нахожу интересным, что в журналах файловой системы TFS пишет следующее: Stop aggressive process web console line queue.
Сценарию PSS требуется доступ в Интернет для отправки запросов в веб-службу.
Журналы TFS:
2019-04-15T13:23:30.6310955Z ##[section]Starting: Run Tests
2019-04-15T13:23:30.6314476Z ==============================================================================
2019-04-15T13:23:30.6314575Z Task : Batch Script
2019-04-15T13:23:30.6314677Z Description : Run a windows cmd or bat script and optionally allow it to change the environment
2019-04-15T13:23:30.6314760Z Version : 1.1.3
2019-04-15T13:23:30.6314831Z Author : Microsoft Corporation
2019-04-15T13:23:30.6314926Z Help : [More Information](https://go.microsoft.com/fwlink/?LinkID=613733)
2019-04-15T13:23:30.6315025Z ==============================================================================
2019-04-15T13:23:30.6326914Z ##[command]"C:Program FilesSmartBearSoapUI-5.2.1bintestrunner.bat" -r -j -ftests %testScript% 2>NUL
2019-04-15T13:23:31.7381481Z 18:23:31,483 INFO [DefaultSoapUICore] Creating new settings at [C:WindowsServiceProfilesNetworkServicesoapui-settings.xml]
2019-04-15T13:23:33.0767434Z 18:23:32,679 INFO [PluginManager] 0 plugins loaded in 2 ms
2019-04-15T13:23:33.0767679Z 18:23:32,679 INFO [DefaultSoapUICore] All plugins loaded
2019-04-15T13:24:22.9158044Z Terminate batch job (Y/N)?
2019-04-15T13:24:22.9249350Z ##[error]The operation was canceled.
2019-04-15T13:24:22.9280244Z ##[section]Finishing: Run Tests
Я также обнаружил следующие журналы в файловой системе C:agent_diag
[2019-04-15 12:13:40Z INFO ProcessInvokerWrapper] Process started with process id 7868, waiting for process exit.
[2019-04-15 12:13:40Z INFO JobServerQueue] Try to append 1 batches web console lines for record '5119da93-a929-543c-7e43-439284c14c5d', success rate: 1/1.
[2019-04-15 12:13:40Z INFO JobServerQueue] Try to append 1 batches web console lines for record 'b544018b-4d71-5134-742f-cb63728506de', success rate: 1/1.
[2019-04-15 12:13:40Z INFO JobServerQueue] Try to append 1 batches web console lines for record '85f1bd98-2921-5766-8330-d8b491fc5b96', success rate: 1/1.
[2019-04-15 12:13:43Z INFO JobServerQueue] Try to append 1 batches web console lines for record '85f1bd98-2921-5766-8330-d8b491fc5b96', success rate: 1/1.
[2019-04-15 12:13:43Z INFO JobServerQueue] Try to upload 2 log files or attachments, success rate: 2/2.
[2019-04-15 12:13:44Z INFO JobServerQueue] Try to append 1 batches web console lines for record '85f1bd98-2921-5766-8330-d8b491fc5b96', success rate: 1/1.
[2019-04-15 12:13:51Z INFO JobServerQueue] Stop aggressive process web console line queue.
[2019-04-15 12:18:29Z INFO Worker] Cancellation/Shutdown message received.
[2019-04-15 12:18:29Z INFO ExpressionManager] Evaluating: succeeded()
[2019-04-15 12:18:29Z INFO ExpressionManager] Result: False
[2019-04-15 12:18:29Z INFO StepsRunner] Cancel current running step.
[2019-04-15 12:18:29Z INFO ProcessInvokerWrapper] Sending CTRL_C to process 7868.
[2019-04-15 12:18:29Z INFO ProcessInvokerWrapper] Successfully send CTRL_C to process 7868.
[2019-04-15 12:18:29Z INFO ProcessInvokerWrapper] Waiting for process exit or 7.5 seconds after CTRL_C signal fired.
[2019-04-15 12:18:29Z INFO ProcessInvokerWrapper] Ignore Ctrl C to current process.
[2019-04-15 12:18:29Z INFO ProcessInvokerWrapper] Finished process with exit code 1, and elapsed time 00:04:49.0108550.
[2019-04-15 12:18:29Z ERR StepsRunner] Caught cancellation exception from step: System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at Microsoft.VisualStudio.Services.Agent.Util.ProcessInvoker.<ExecuteAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.Agent.ProcessInvokerWrapper.<ExecuteAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.Agent.Worker.Handlers.PowerShellExeHandler.<RunAsync>d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.Agent.Worker.TaskRunner.<RunAsync>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Services.Agent.Worker.StepsRunner.<RunStepAsync>d__1.MoveNext()
[2019-04-15 12:18:29Z INFO StepsRunner] Step result: Canceled
[2019-04-15 12:18:29Z INFO StepsRunner] No need for updating job result with current step result 'Canceled'.
[2019-04-15 12:18:29Z INFO StepsRunner] Current state: job state = 'Canceled'
[2019-04-15 12:18:29Z INFO StepsRunner] Processing step: DisplayName='Post Job Cleanup', ContinueOnError=False, Enabled=True
[2019-04-15 12:18:29Z INFO ExpressionManager] Evaluating: AlwaysNode()
[2019-04-15 12:18:29Z INFO ExpressionManager] Result: True`
Комментарии:
1. Завершение происходит после завершения тестов? если вы сможете нажать «y», все будет в порядке? или ваша проблема в том, почему задача завершилась?
2. @ShaykiAbramczyk Я не уверен, что тесты завершены, потому что я не могу получить какую-либо информацию о статусе задачи. Основная проблема заключается в том, что я также ничего не могу нажать, потому что TFS запускает этот скрипт, а скрипт ожидает нажатия TFS. Таким образом, ситуация выглядит как «взаимоблокировка», когда TFS ожидает завершения сценария, а сценарий ожидает, пока TFS что-нибудь нажмет.
3. Можете ли вы предоставить общий доступ к пакетному файлу?
4. @ShaykiAbramczyk да, пожалуйста: ссылка . Примечание: это не мой код. Он поставляется с установкой SoapUI.
Ответ №1:
Я решил эту проблему, переустановив SoapUI.
Не уверен, почему это происходит, но TFS не работает четко с SoapUI 5.2.1