Хобрук: Ваш путь к мастерству в программировании

Gradle: запускайте интеграционные тесты во время развертывания, а не во время установки

Я ищу как советы о лучших практиках, так и о том, как это реализовать.

У нас есть типы тестов, те, у которых есть макеты зависимостей с помощью Mockito (модульные тесты, потому что они тестируют единицу кода), и делать суп-к-орешкам (RESTful Resource -> Database, назовите их интеграционными тестами).

Интеграционные тесты загружают новую JVM и заполняют базу данных H2, поэтому их выполнение занимает немного больше времени.

В идеале мы хотели бы, чтобы модульные тесты запускались, когда вы вводите команду gradle test, но если вы будете выполнять развертывание, мы также хотим, чтобы интеграционные тесты выполнялись.

В любом случае, мне любопытно, что люди сделали, чтобы убедиться, что интеграционные тесты выполняются перед развертыванием, или они решили это другим способом. Спасибо!


Ответы:


1

Вы можете использовать зависимости задач, чтобы гарантировать выполнение задачи интеграции перед задачей развертывания.

Допустим, задача, выполняющая ваши интеграционные тесты, называется integTestTask, а задача развертывания — deployTask.

deployTask.dependsOn integTestTask

Эта команда гарантирует, что при выполнении задачи интеграции gradle deployTask она будет запущена до задачи развертывания. Проверьте страницы ниже для разделения модульных тестов и интеграционных тестов.

https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:task_dependencies

https://www.michael-bull.com/blog/2016/06/04/separating-integration-and-unit-tests-with-gradle

01.03.2018
Новые материалы

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

Обзор 20 основных и современных методов работы с массивами в JavaScript
Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

Да, но я чувствую необходимость указать, что это или не единственные два.
Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.