Каков рекомендуемый способ тестирования сквозной интеграции для нескольких приложений загрузки Spring
на фазе проверки сборки Maven
?
В принципе, у меня есть мультимодульный проект Maven, в котором несколько модулей являются отдельными загрузочными приложениями spring. Эти отдельные приложения имеют собственную конфигурацию для источников данных, потоки интеграции с очередями JMS
и т.д. Например, приложение A будет опроса базы данных для события, а когда это произойдет, оно создает файл данных JSON
и помещает сообщение в очереди JMS
. Приложение B опросит очередь JMS
, так что берет сообщение, читает файл, выполняет некоторую обработку с использованием другой базы данных и помещает сообщение в другую очередь. Приложение C затем подберет это сообщение и т.д. И т.д.
Я установил интеграционные тесты для отдельных приложений; они запускаются под защищенным плагином Maven. Тем не менее, я хотел бы интегрировать тестирование всей системы, в конце, под Maven. Я создал отдельный модуль в проекте, посвященном этой задаче, и хотел бы, чтобы эта фаза сборки этого модуля провела окончательное тестирование с использованием других зависимых модулей.
Есть ли лучший способ сделать это? Я вижу 3 возможных способа:
- Загрузите каждую конфигурацию приложения в один и тот же контекст приложения. Однако из-за множества источников данных и т.д. Это создает конфликты, поэтому все эти источники данных должны быть настроены вручную, чтобы обеспечить сквозное тестирование интеграции - так что это кажется мне неправильным.
- Запустите каждое приложение как отдельный процесс - как правильно правильно отслеживать их и убедиться, что они закрываются, если сборка тестового модуля останавливается/вылетает/etc?
- Есть ли способ легко загрузить отдельные загрузочные приложения spring, каждый со своим контекстом конфигурации, в том же процессе? Казалось бы, это самый разумный вариант. Существуют ли какие-либо соображения в отношении плагина сборки/отказоустойчивости
Maven
?