Конвейер Azure DevOps - как отловить ошибку - PullRequest
0 голосов
/ 29 ноября 2018

Я использую конвейер сборки Azure DevOps для запуска моих тестов веб-автоматизации selenium (запускаемых maven, внутри контейнера Docker)

  1. Теперь, даже если один из моих тестовых сценариев завершится неудачно, задание конвейера будетпо-прежнему считается успешным, как я могу указать, чтобы поиск определенного журнала завершился с ошибкой?

«Конвейерное задание / задача / фаза», которое я использую для запуска теста, - «docker compose»

  1. Мой второй вопрос: есть ли возможность фильтровать логи конвейерного выхода?В настоящее время он заполнен выводом нескольких служб, запущенных в контейнере:

enter image description here

Единственное, что я нашел, это возможность поиска по журналам,но без фильтрации, привет.

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

Мы столкнулись с этим с помощью наших кипарисовых тестов (вы должны угробить селен для кипариса, его сладкое) и решили это, взяв код выхода вручную.Мы также обнаружили, что AzureDevops будет зависать, если запущен фоновый процесс, даже если есть ошибка, поэтому обязательно следите за этим, если вы запускаете свой веб-сервер, как мы.

  - bash: |
      yarn test-ci:e2e  2> /dev/null 
      if [ $? -eq 0 ]
        then
          yarn stop
          exit 0
        else
          yarn stop
          exit 1
      fi
    displayName: 'Run Cypress Tests'
0 голосов
/ 06 декабря 2018

Для тех, кто ищет способ фильтрации журналов, если работает несколько служб, вы можете создать новую задачу конвейера сборки Azure (Docker), которая запускает команду docker:

docker logs -f NAME_OF_THE_SERVICE

Таким образом, вы будете толькосм журналы от желаемой услуги.

0 голосов
/ 29 ноября 2018

Если вашей целью является сбой сборки при сбое одного из ваших тестов, я советую вам добавить еще один шаг к процессу сборки: Опубликовать результаты теста задача

Это необходимый шаг для запуска теста с другой задачей, отличной от задачи по умолчанию Visual Studio Test , которая заключается в публикации файла результатов теста в DevOps Azure и позволяет вашей сборке знать о результатах ваших тестов (изатем позвольте вам решить, что делать, если один или несколько тестов не пройдены)

В вашем случае вам, вероятно, также придется найти способ извлечения файла результатов теста из ваших контейнеров, поскольку ваши результаты теста могут быть полученыи хранится внутри ваших контейнеров (и недоступно для Publish Test Result task)

По вашему второму вопросу, я не знаю ни одного способа фильтрации выходных журналов непосредственно из веб-интерфейса, извините: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...