Как сделать архив WAR, созданный с помощью maven-assembly-plugin, доступным для юнит-тестов других проектов? - PullRequest
2 голосов
/ 22 октября 2010

Моя проблема состоит из двух проектов maven, серверного проекта A и клиентского проекта B. A использует maven-assembly-plugin для создания нескольких вариантов A, где один вариант представляет собой архив WAR.Проблема, с которой я сталкиваюсь, связана с разработкой B, ориентированной на тестирование; как я могу сделать архив WAR, созданный в проекте A, доступным / адресуемым из модульных тестов в проекте B? Моя идея состоит в том, чтобы создать контрольные примеры в проекте B, где архив WAR развертывается на встроенном сервере Jetty черезФункция WebApppContext setWar (String path).

1 Ответ

1 голос
/ 22 октября 2010

Вы можете объявить артефакт из другого подмодуля как тестовую зависимость , например ::

<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>ModuleA</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
    </dependency>

</dependencies>

Таким образом, вы наверняка можете использовать баночки из другого модуля. Я не уверен, работает ли он для файла WAR, но, возможно, стоит попробовать.

Обратите внимание, что тесты, запускаемые для WAR, развернутого во встроенном веб-контейнере, вряд ли будут считаться модульными, а скорее интеграционными. Подход, который работает в нашем проекте:

  1. создайте веб-приложение (в нашем случае EAR) и разверните его (мы используем плагин JBoss Maven, но это может быть, например, Cargo или другие в вашем случае)
  2. запустить отдельную сборку (с определенным временем ожидания для запуска сервера), который выполняет интеграционные тесты для развернутого веб-приложения
...