Я хотел бы обсудить сценарий, когда часть нашего продукта не встраивается в JVM, но должна участвовать в интеграционном тестировании.
Сценарий: я использую Maven. Мое приложение использует следующие инструменты
А) Активный MQ
Б) Кассандра Д.Б.
C) CXF WebService.
Решение 1 для интеграционного тестирования. Мне повезло, что все A B и C встраиваемые. Так что я мог бы просто смоделировать A B C в моей JVM и использовать его. Это, очевидно, работает, но это не то, что я хотел бы обсудить.
Решение 2. Используйте фазы Maven, связанные с интеграционным тестированием, для настройки всей среды enviro. Итак, шаги:
1a) упаковать двоичные файлы A, B, C в модуль, чтобы он мог распаковать и подготовить эти продукты на этапе предварительной интеграции (что-то вроде домашнего груза) ИЛИ
1b) на этапе предварительного тестирования загрузите эти двоичные файлы из Интернета, распакуйте и т. Д. И т. Д. (Снова эмулируя грузовой проект)
2) выключить все в пост-интеграционном тесте.
Как осуществить решение 2 с Maven? Есть ли какой-нибудь плагин, который помог бы с загрузкой, распаковкой (и помнить, что не нужно скачивать снова на той же машине?). Как запустить и выключить ABC, если известно их местонахождение? Какой плагин Maven? Должен ли я просто использовать плагин antrun и создавать сценарии, которые будут запускать ABC из командной строки, а затем каким-то образом разбивать их (я не знаю, как это сделать, возможно, путем уничтожения процессов)?