【发布时间】:2017-04-18 00:10:00
【问题描述】:
我在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。
我们的 Jersey REST/API 代码位于模块 A 中。这样,无论我们部署什么模块,我们都始终可以访问 rest/api。
到目前为止,我已经设法在模块 C 中配置 Maven FailSafe 插件,以便在我运行顶部(父级)pom.xml(即:mvn verify)时建立一个 tomcat 实例。
但是,模块 C 无法看到模块 A 的集成测试。我已尝试配置 maven-jar-plugin (http://maven.apache.org/guides/mini/guide-attached-tests.html)。
在模块 A 的 pom.xml 中有:
<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>
当 mvn 运行 Module C 故障安全插件时,谁能帮我弄清楚如何在 Modula A 中运行这些集成测试。
注意:集成测试被命名为 *IT.java,因此它会被故障安全插件拾取。
有没有其他方法可以做到这一点,或者我什至使用了正确的插件?
非常感谢。
【问题讨论】:
-
如果您需要创建
<include>**/*IT.java</include>,则表明您应该有一个单独的集成测试模块,您应该在其中放置集成测试。
标签: java maven maven-failsafe-plugin