我在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插件,以便在运行top(父)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 failafe插件时,任何人都可以帮我弄清楚如何在Modula A中运行这些集成测试。
注意:集成测试被命名为* IT.java,因此它被故障安全插件获取。
有没有其他方法可以做到这一点,或者甚至使用正确的插件?
提前多多感谢。
答案 0 :(得分:0)
如果模块C包含对带有 tests 类文件的A的依赖关系,则可以在maven-failsafe-plugin(自2.15)配置的<dependenciesToScan>
属性中引用该依赖关系。 / p>
http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#dependenciesToScan
<dependency>
<groupId>com.group</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>tests</classifier>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.15</version>
<executions>
<execution>
<id>it</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<dependenciesToScan>
<dependency>com.group:A</dependency>
</dependenciesToScan>
</configuration>
</plugin>
使用你的maven-jar-plugin配置我得到了一个空的测试档案。我不得不将模式更改为<include>**/*IT.class</include>
。