什么是“默认测试”代表在Maven的万无一失插件(What does the “default-te

2019-06-27 00:07发布

我在聚甲醛与TestNG的万无一失定义如下配置:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
            <configuration>
                <skipTests>${skip-all-tests}</skipTests>
            </configuration>
            <executions>
                <execution>
                    <id>unit-tests</id>
                    <phase>test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <skip>${skip-unit-tests}</skip>
                        <groups>unit</groups>

                        <excludedGroups>integration</excludedGroups>
                    </configuration>
                </execution>
                <execution>
                    <id>integration-tests</id>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <skip>${skip-integration-tests}</skip>
                        <groups>integration</groups>
                        <excludedGroups>unit</excludedGroups>
                    </configuration>
                </execution>
            </executions>
        </plugin>

但似乎两次执行总是被“默认测试”来看,这似乎运行每@Test注解的方法之前(至少我是这么认为的)。

--- maven-surefire-plugin:2.12:test (default-test) @ my-project

例如其上运行的项目“MVN测试”,两个测试执行发生。 “默认测试”和“单元测试”。

可能有人解释这多一点给我吗? 这可以被禁用或控制(配置什么是测试并没有什么)?

Answer 1:

人们希望有一种方法来替代默认内Maven插件内置处决。

行家3(或它可能已被引入早2.1.0或2.2.0)解决了这个定义为每个插件执行的默认执行ID添加到由包装的生命周期中的有效的POM。

这种隐含ID的名称是始终default-_____我不记得它是针对产生的确切规则。

因此,您可以通过定义一个匹配的执行覆盖包装的注射执行死刑。

为了解决你的情况我要么改变<id>unit-tests</id><id>default-test</id>或增加

            <execution>
                <id>default-test</id>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </execution>

或者将具有相同的效果,尽管<id>unit-tests</id><id>default-test</id>溶液将稍微更好的性能如你只需要调用的万无一失两次执行。

我想指出的另一件事情是,你可能会更好使用maven-故障保护,插件来执行您的集成测试,在某个时间点,你可能希望做一些东西前及后的整合测试,故障安全设计用于使用情况下(尽管它应该是微不足道的进一步切换的路线)



文章来源: What does the “default-test” stand for in the maven-surefire plugin