如何从Eclipse RCP / Maven中的集成测试中排除插件

时间:2014-10-31 08:09:44

标签: maven plugins pom.xml rcp surefire

我有一个使用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

1 个答案:

答案 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>