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



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

如何排除特定插件以避免此编译错误?

提前谢谢。

编辑:我找到了。在Each pom.xml中,如果我想避免非测试插件中的编译错误,我在<packaging>eclipse-test-plugin</packaging>中,在<packaging>eclipse-plugin</packaging>中没有。

但是谢谢你们的帮助<3

您可以使用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>

最新更新