maven surefire插件也执行排除

时间:2014-01-29 22:07:40

标签: java unit-testing maven surefire

我有以下配置使用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>

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

感谢,

2 个答案:

答案 0 :(得分:0)

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

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

Maven documentation for overriding the default executions

答案 1 :(得分:0)

我注意到即使我没有配置,也会出现ID default-test的执行。

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