Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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_Maven Surefire Plugin - Fatal编程技术网

如何配置maven以仅在部署时执行测试

如何配置maven以仅在部署时执行测试,maven,maven-surefire-plugin,Maven,Maven Surefire Plugin,我在pom.xml上有maven surefire插件: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version&

我在pom.xml上有maven surefire插件:

<build> 
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <includes>
                    <include>org.mycompany.service/*Test.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven surefire插件
3.0.0-M5
org.mycompany.service/*Test.java
现在,我希望maven只对部署目标执行测试,因此:

  • 执行mvn部署测试时,应运行
  • 在执行mvn包或mvn安装时,不应运行测试,因为目标在部署之前

  • 我能想到的唯一方法是将surefire插件绑定到部署阶段。这有缺点:

    • 这些测试是在安装工件之后运行的
    • 可能测试中断是因为它们不打算在生命周期的后期运行
    • 我不知道如何确保在部署之前执行它们

    您是希望默认情况下出现这种行为,还是只希望自己或在某些环境中出现这种行为

    -DskipTests
    添加到命令行通常就足够了


    我在本地工作站上使用了一些CLI别名,因此我不必键入所有别名,也别忘了添加别名。例如,请参见zsh:

    为什么要在部署阶段运行测试?没有道理。测试命名类是单元测试,应该在打包之前运行。如果您希望在部署之前运行测试,那么调用的不同集成测试将运行哪个测试。在部署期间已经太晚了。。。