Среда тестирования интеграции, настроенная с Maven с не встраиваемой зависимостью - PullRequest
1 голос
/ 05 марта 2011

Я хотел бы обсудить сценарий, когда часть нашего продукта не встраивается в 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 из командной строки, а затем каким-то образом разбивать их (я не знаю, как это сделать, возможно, путем уничтожения процессов)?

1 Ответ

1 голос
/ 05 марта 2011

Команда Cargo предоставляет вам maven архетипов , которые могут оказаться полезными. Обратите особое внимание на Separate Functional Test Module Archetype, который включает модуль, предназначенный для интеграционных (функциональных) тестов, который выполняет именно то, что вы описываете:

  • использует груз для развертывания артефактов в контейнере приложения на этапе pre-integration-tests
  • артефакты могут быть либо частью вашего реактора, либо обычными зависимостями
  • выполнены интеграционные тесты
  • Фаза после интеграционных испытаний используется для разрушения контейнера

Надеюсь, это поможет.

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