Как получить осмысленное сообщение об ошибке от скрипта powershell, запущенного в сборке TeamCity? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть сборка TeamCity, и одним из шагов является вызов MSBuild файла .proj:

Runner type: MSBuild
Build file path: TestProject.proj
Targets: Test

внутри .proj У меня есть цели:

<Target Name="DeployTestService">
    <Message Text="Deploying test service" />
    <Exec Command="powershell -Command &quot;&amp; { myUsefulPsScript.ps }&quot;" />
</Target>

<Target Name="Test">
   // other stuff, then
   <CallTarget Targets="DeployTestService" />
</Target>

, и большую часть времени он работает хорошо. Тем не менее, если сценарий powershell завершается неудачно (возникает необработанное исключение, и я вижу его текст в полном журнале) и завершается с ненулевым кодом, я вижу следующее в результатах сборки Teamcity:

 Tests passed: (some number); exit code 1

и дерево сборки просто говорит:

Build failure condition (1)
 Process exited with code 1   
   [Time]Process exited with code 1

и пока я не получу полный журнал, я действительно не знаю, какой шаг не удался и как именно. Дело не в том, чтобы исправить первоначальную проблему, а в том, чтобы быстрее найти неисправный шаг.

Есть ли способ заставить Teamcity сказать что-то вроде "бегуна на шаге N не удалось с этим сообщением об ошибке [сообщение, которое я вижу в полном журнале]"?

1 Ответ

0 голосов
/ 06 сентября 2018

Вам необходимо использовать выходной формат Teamcity . Например, каждый раз, когда начинается новый тест, выведите:

##teamcity[testStarted name='foo|'s test']

Таким образом, Teamcity будет знать, каким был последний шаг или последний тест перед сбоем приложения, и сможет соответствующим образом отформатировать вывод.

...