我有一个使用Eclipse RCP的应用程序。我有几个插件,每个插件都有一个pom.xml文件,所有项目都有一个超级pom.xml。
结构是:
plugin.a ( pom.xml inside )
plugin.b ( pom.xml inside )
plugin.c ( pom.xml inside )
plugin.test ( with a pom.xml too, contains all JUnit tests classes )
pom.xml
我的问题是,当我启动命令时:mvn integration-test
Maven尝试执行所有* Test.java,但是如果它没有发现它崩溃(例如在插件a / b / c中)。
如何排除特定插件以避免此编译错误?
提前谢谢。
编辑:我找到了。在每个pom.xml中,如果我想避免非测试插件中的编译错误,我在<packaging>eclipse-test-plugin</packaging>
而在<packaging>eclipse-plugin</packaging>
中没有。
但是谢谢你的帮助。 &LT; 3
答案 0 :(得分:0)
您可以使用surefire插件(单元测试)和故障安全插件(集成测试)来区分哪些测试在哪个阶段运行
作为示例:(在父pom.xml中)
在你的情况下,如果模块之间没有共同的模式,我认为你需要在每个插件模块中都有类似的配置。所以你可以禁用每个插件的执行。
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<forkMode>once</forkMode>
<includes>
<include>**/Test*.java</include>
</includes>
<excludes>
<exclude>**/*</exclude>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>failsafe-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
</plugin>
如果存在常见模式,但您只想禁用执行,则可以向插件添加执行,并为其指定ID。如果子pom使用相同的id
,则可以重新配置该执行 <plugin>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<configuration>
</configuration>
<executions>
<execution>
<id>test-run-thing-id</id>
<phase>install</phase>
<goals>
<goal>plugin-goal</goal>
</goals>
</execution>
</executions>
</plugin>