Как сделать тест Дженкинса на ошибки CDI? - PullRequest
0 голосов
/ 16 декабря 2018

введение

Для (школьного) проекта, над которым я работаю, мы должны разработать Java-приложение среднего размера, которое в нашем случае использует внедрение зависимостей javaFX и java CDI, у нас есть скриптовый конвейер jenkins, основанный наGroovy файл, который проверяет каждый запрос на извлечение, так что ветви, которые не соответствуют требованиям качества или не построены, не могут быть объединены

проблема

Теперь у нас есть проблема, что только 25% разработчиков в настоящее время фактически запускают приложение, чтобы проверить, работают ли их дополнения, так как проект находится на столь ранних стадиях, что много функциональностимы в настоящее время работаем над еще не привыкнуть к GUI.Остальные 75% разработчиков используют модульные и интеграционные тесты JUnit, чтобы проверить, работает ли их код.Хотя мы могли бы попытаться сказать, что все должны запустить настоящее приложение, прежде чем делать запрос на извлечение, чтобы проверить, нет ли ошибок времени выполнения с внедрением зависимости java CDI.Люди - это люди, и они не всегда слушают, поэтому мы часто внедряем в разработку код, который успешно работает с maven, но не может быть запущен из-за проблем с внедрением зависимостей.

question

Какой самый простой способ проверить в сборке jenkins, что нет проблем с внедрением зависимостей java CDI, которые выскочат во время выполнения?

sidenote

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

1 Ответ

0 голосов
/ 17 декабря 2018

Ваш подход CI (непрерывная интеграция) хорош.Тестирование всех PR - это путь, вам просто нужно решить, какой тип теста должен быть выполнен.Стиль JUnit или интеграционные тесты?Может быть, и то и другое?

Сам CDI имеет фазу проверки развертывания, на которой он проверяет, при загрузке, все ли в порядке - если bean-компоненты способны к пассивации (те, которые должны), если все заявленные точки внедрения могут быть удовлетворены и т.д.на.Это может перехватить много пользовательских ошибок перед попаданием во время выполнения, поэтому простое развертывание приложения показывает это.Вы можете и должны использовать Arquillian для настройки среды тестирования, аналогичной реальной среде выполнения.Обратите внимание, что эта проверка (фактически без проверки) не может проверять ошибки динамического разрешения.Например, когда вы используете Instance<Object>, а затем пытаетесь разрешить бин, который не существует, без проверки.

Если это не то, что вы хотели, тогда вы можете рассмотреть расширение сварного соединения .Это использует junit (4 или 5) для начальной загрузки контейнера Weld SE, в котором вы можете поиграть со своими бобами и проверить их.Посмотрите README и тесты в проектах для примеров.Это не отражает чистую среду EE, но представляет собой скорее тестирование в стиле junit с CDI, и с ним легко начать.

Обратите внимание, что с Jenkins вы можете настроить несколько задач для каждого PR.Вы можете заставить его запускать все тесты JUnit, а также все интеграционные (Arquillian) тесты, например.

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