Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven配置文件未运行适当的测试_Maven - Fatal编程技术网

Maven配置文件未运行适当的测试

Maven配置文件未运行适当的测试,maven,Maven,我已经为只运行集成测试配置了一个概要文件,但它仍在运行所有测试。 以下是配置: <profile> <id>integration</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</grou

我已经为只运行集成测试配置了一个概要文件,但它仍在运行所有测试。 以下是配置:

    <profile>
        <id>integration</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18.1</version>
                    <executions>
                        <execution>
                            <id>integration-test</id>
                            <goals>
                                <goal>test</goal>
                            </goals>
                            <phase>test</phase>
                            <configuration>
                                <includes>
                                    <include>**/*IT.java</include>
                                </includes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
我试着用正则表达式,就像在上解释的那样,但我发现它不起作用。
如何只让测试以IT.java结尾运行?

您没有重新配置surefire运行,而是在生命周期中添加了另一个。这样,surefire:测试运行两次,一次使用默认执行id默认测试,一次使用新的执行集成测试

如果您只是想更改正在运行的测试,可以使用:

<profile>
    <id>integration</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <includes>
                        <include>**/*IT.java</include>
                    </includes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>
这只会重新配置现有的执行


尽管如此,正如khmarbaise在评论中所写的那样,简单地使用maven failsafe插件更有意义。如果您真的想跳过正常的单元测试,那么您为什么要这样做呢?您可以使用skipTests配置在配置文件中显式禁用surefire。

首先使用maven failsafe插件,而不是maven surefire插件。这两个插件都有适当的命名模式Test.java、*TestCase.java、Test.java(对于surefire)和Test.java。除了在测试阶段运行集成测试是错误的之外,因为存在一个集成测试生命周期阶段,该阶段正是为此而设计的。此外,这里最好有完整的pom文件。嗨,谢谢你们两位的帮助@blackbuild:不,我不想删除单元测试。运行mvn测试应该只运行单元测试,mvn测试-PsoapUi应该运行集成的soapUi测试,mvn测试-Pintegration应该只运行以它结尾的测试。我删除了执行添加并使其运行。