У меня есть следующая структура в mvn.
| pom.xml (parent)
|
|
+----- module A (common classes)
| | pom.xml
| |
| \---src
| +---main
| |
| \---test
| +---junit
| |
| \---integration
|
+----- module B (web app)
| | pom.xml
| |
| \---src
| +---main
|
+----- module C (web app)
| | pom.xml
| |
| \---src
| +---main
Модуль A — это модуль, наследуемый всеми последующими модулями (B, C, ...). Этот модуль имеет общую функциональность и тестовые примеры junit/интеграции. Это не веб-приложение.
Модуль B — это веб-приложение. Он зависит от модуля B.
Модуль C — это веб-приложение. Он зависит от модуля B.
Наш код rest/api из Джерси находится в модуле A. Таким образом, независимо от того, какой модуль мы развернем, у нас всегда будет доступ к rest/api.
До сих пор мне удалось настроить плагин Maven FailSafe в модуле C для запуска экземпляра tomcat, когда я запускаю верхний (родительский) pom.xml (то есть: проверка mvn).
Однако модуль C не может видеть интеграционные тесты из модуля A. Я попытался настроить maven-jar-plugin (http://maven.apache.org/guides/mini/guide-attached-tests.html).
В pom.xml модуля A у меня есть:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
и в модуле C у меня есть:
<dependency>
<groupId>groupId</groupId>
<artifactId>SCCommon</artifactId>
<type>test-jar</type>
<classifier>tests</classifier>
<version>9.1.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
Может ли кто-нибудь помочь мне понять, как я могу запустить эти интеграционные тесты в Модуле A, когда mvn запускает отказоустойчивый плагин Module C.
Примечание: интеграционные тесты называются *IT.java, поэтому они подхватываются отказоустойчивым подключаемым модулем.
Есть ли другой способ сделать это или я даже использую правильный плагин?
Заранее большое спасибо.
<include>**/*IT.java</include>
, это показатель наличия отдельного модуля интеграционных тестов, в который вы должны поместить свои интеграционные тесты. - person khmarbaise   schedule 18.04.2017