【问题标题】:maven surefire plugin executes excludes alsomaven surefire 插件也执行 excludes
【发布时间】:2014-01-29 22:07:39
【问题描述】:

我有以下配置使用 maven-surefire-plugin 执行我的集成测试和单元测试..

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.16</version>
                <executions>
                    <execution>
                        <id>unit-tests</id>
                        <phase>test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <excludes>
                                <exclude>**/*Test.java</exclude>
                                <exclude>**/*TestCase.java</exclude>
                            </excludes>
                            <includes>
                                <include>**/MySuite.java</include>
                            </includes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <skip>true</skip>
                            <includes>
                                <include>**/BarSuite.java</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

但是,在执行单元测试时,它似乎运行我的各个测试类以及执行运行这些相同类的套件。如何将其配置为仅执行我包含的内容?即套房? (我的套件)

谢谢,

【问题讨论】:

    标签: java unit-testing maven surefire


    【解决方案1】:

    如果没有构建日志,我无法确定,但从您的描述来看,这是我的怀疑。对于 jars、wars、ears,surefire 插件默认绑定到生命周期。您对配置所做的是添加两个额外的插件执行,但是您没有更改默认执行。您应该能够通过在 mvn 命令中添加 -X 并计算 surefire 插件执行的次数来看到这一点。

    要覆盖默认值,请将第一次执行的 id 更改为“default-test”,看看是否可以解决问题。

    Maven documentation for overriding the default executions

    【讨论】:

      【解决方案2】:

      我注意到,即使我没有配置它,似乎也有一个 ID 为 default-test 的执行。

      通过显式配置具有此 ID 的执行,我可以控制它。在您的情况下,告诉它排除 ** 可能会解决您的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-22
        • 2018-12-20
        • 2016-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-16
        相关资源
        最近更新 更多