Рубрики
Uncategorized

Team City — любопытный случай неудачных тестов, но прошло сборки

Недавно я написал сообщение о том, как мне удалось снять построить трубопровод для E … Теги с сетью, чистым ядром, непрерывной интеграцией, DEVOPS.

Недавно я написал сообщение о том, как мне удалось снять построить трубопровод для всей организации. Пока я был на вине в это время, командный город должен взять вину за этот.

Фон

Я недавно создал CI/CD-трубопровод для нашего нового .NET Основной проект. В рамках строительного трубопровода у меня были обычные шаги построения для создания решения, запустите модульные тесты, выполните тесты в интеграции, а затем развертывают до осьминога.

Команда City Dotnet CLI Plugin

Как уже упоминалось в моем предыдущем посте в команде, я пытался избежать плагинов City City как можно больше и вместо этого использую сценарии или командную строку. Чтобы запустить тесты для моего нового проекта, мои первые предпочтения было необходимо использовать команду «dotnet» из коробки вместо использования плагина Team City Dotnet. Тем не менее, Dotnet Test Команда не принимает список нескольких проектов по умолчанию. Там, очевидно, вокруг этого Но я решил пойти на плагин City City вместо этого из-за простоты и простоты использования. Конфигурация была проста и простой, и я был и работал за считанные минуты.

Команда City Dotnet CLI Plugin

Проблема

Наш CI/CD-трубопровод, похоже, работают, как ожидалось без драм. Когда-то был одобрен PR-филиал, основной филиал сборки был триггером и успешной сборкой, решение будет развернуть до осьминога. В течение одного прекрасного дня наш QA сообщил об ошибке, который должен был в идеале был пойман нашими тестами интеграции. Когда я посмотрел командный город, я заметил, что сборка была успешна, даже когда тесты интеграции не удалось. Это было странно во многих отношениях, и я дважды проверил конфигурацию сборки и проверил, что все они были установлены правильно. «Шаг выполнения» для всех шагов сборки был установлен на «Если все предыдущие шаги завершится успешно». Но все же построение шаги после не удалось Шаг сборки, по-видимому, выполняется.

Первопричина

Один дополнительный копание, я нашел корневую причину проблемы, чтобы быть этот вопрос на плагине Team City Dotnet. Были другие разработки, которые также были охраняются, как я. Согласно одному из авторов плагинов:

Это оригинальное поведение. Для большинства бегунов процесс возвращает ненулевой код выхода, что означает, что работает не успешно. Для бегунов, таких как NUNIT, VSTEST, TEST DOTNET, MSBUILD/T: VSTEST, DOTNET VSTEST Положительный код выхода только на сумму неудачных тестов. Смотрите это нить для деталей

Однако это объяснение для меня недостаточно, чтобы не исправить неправильное поведение/ошибку в плагине. Поведение не интуитивно и может привести к проблемам, такими как мои и другие разработчики.

Если вы хотите Jetbrains, чтобы приоритетировать этот вопрос, вы можете проголосовать здесь Отказ

Обходной путь

Один из предложенного обходного пути, упомянутого для этого вопроса, было установить «шаг выполнения» для каждого шага сборки как «только если статус сборки является успешным». Но мне не понравилось это решение, поскольку это означает, что мы уходим от по умолчанию без причины, и нам нужно помнить Еще одна вещь, чтобы изменить По умолчанию каждый раз, когда мы добавляем новый шаг сборки.

Мне удалось решить эту проблему с слегка очищенной работой, добавив следующую «условию отказа» к конфигурации моей команды.

Это условие отказов работало в виде сообщений журнала сборки, содержат текстовые «тесты, не удалились» каждый раз, когда выступить шаг тестирования теста.

Надеюсь, этот совет поможет вам избежать одинаковой ошибки и сэкономить несколько часов. 🙂

Пост Team City — неудачные тесты, но построить проход появился первым на Привет, я Анкит Отказ

Оригинал: «https://dev.to/ankitvijay/team-city—curious-case-of-failed-tests-but-passed-build-4gbf»