【问题标题】:Running test categories separately单独运行测试类别
【发布时间】:2018-04-19 20:30:41
【问题描述】:

我需要在不同的阶段运行我的测试组(首先运行 A 组,然后运行 ​​B 组,就像您刚刚开始运行测试一样)

所以我决定结合使用 maven-failsafe-plugin 和 junit 测试类别

我有以下配置:

<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <includes>
                        <include>**/*Test.java</include>
                    </includes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <skip>${skipTests}</skip>
                    <includes>
                        <include>**/*IT.java</include>
                    </includes>
                    <groups>my.categories.IntegrationTest</groups>
                    <excludedGroups>my.categories.ProfiledIntegrationTest, my.categories.MvcTest, my.categories.ExchangeRateTest</excludedGroups>
                </configuration>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <skip>${skipTests}</skip>
                    <includes>
                        <include>**/*IT.java</include>
                    </includes>
                    <groups>my.categories.ProfiledIntegrationTest</groups>
                    <excludedGroups>my.categories.IntegrationTest, my.categories.MvcTest, my.categories.ExchangeRateTest</excludedGroups>
                </configuration>
                <executions>
                    <execution>
                        <id>profiled-integration-test</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <skip>${skipTests}</skip>
                    <includes>
                        <include>**/*IT.java</include>
                    </includes>
                    <groups>my.categories.MvcTest</groups>
                    <excludedGroups>my.categories.ProfiledIntegrationTest, my.categories.IntegrationTest, my.categories.ExchangeRateTest</excludedGroups>
                </configuration>
                <executions>
                    <execution>
                        <id>mvc-integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <skip>${skipTests}</skip>
                    <includes>
                        <include>**/*IT.java</include>
                    </includes>
                    <groups>my.categories.ExchangeRateTest</groups>
                    <excludedGroups>my.categories.MvcTest, my.categories.ProfiledIntegrationTest, my.categories.IntegrationTest</excludedGroups>
                </configuration>
                <executions>
                    <execution>
                        <id>exchange-rate-integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
            </plugin>
        </plugins>

然而 maven 运行我的单元测试 (surefire),然后只运行 maven failsafe 插件的最后一个实例(它忽略了前 3 个)

请问我怎样才能让它也运行它们?

【问题讨论】:

  • 您不能多次定义一个插件。不过,您可以有单独的执行,但我不确定您是否可以将它们绑定到同一阶段。实际上,我怀疑尝试多次启动故障保护插件是否是个好主意。

标签: java maven junit


【解决方案1】:

JF Meier 提到的解决方案

您只需要一个插件实例,并将它们作为单独的执行运行

<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <includes>
                        <include>**/*Test.java</include>
                    </includes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <skip>${skipTests}</skip>
                    <includes>
                        <include>**/*IT.java</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                            <groups>my.categories.IntegrationTest</groups>
                            <excludedGroups>my.categories.ProfiledIntegrationTest, my.categories.MvcTest, my.categories.ExchangeRateTest</excludedGroups>
                        </configuration>
                    </execution>
                    <execution>
                        <id>profiled-integration-test</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                            <groups>my.categories.ProfiledIntegrationTest</groups>
                            <excludedGroups>my.categories.IntegrationTest, my.categories.MvcTest, my.categories.ExchangeRateTest</excludedGroups>
                        </configuration>
                    </execution>
                    <execution>
                        <id>mvc-integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                            <groups>my.categories.MvcTest</groups>
                            <excludedGroups>my.categories.ProfiledIntegrationTest, my.categories.IntegrationTest, my.categories.ExchangeRateTest</excludedGroups>
                        </configuration>
                    </execution>
                    <execution>
                        <id>exchange-rate-integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                            <groups>my.categories.ExchangeRateTest</groups>
                            <excludedGroups>my.categories.MvcTest, my.categories.ProfiledIntegrationTest, my.categories.IntegrationTest</excludedGroups>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
            </plugin>
        </plugins>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-13
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    相关资源
    最近更新 更多