当前位置: 首页 > 知识库问答 >
问题:

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

越雨泽
2023-03-14

我有maven surefire插件pom.xml:

<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>

现在我希望maven只在部署目标上执行测试,因此:

  1. 当执行mvn部署测试应该运行
  2. 当执行mvn包或mvn安装时,测试不应该运行,因为目标在部署之前

共有2个答案

松和泰
2023-03-14

您希望默认情况下发生这种行为,还是希望仅针对您自己或在某些环境中发生这种行为?

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

我有一些我在本地工作站上使用的CLI别名,所以我不必键入所有别名,也不要忘记添加它。参见例如zsh:https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/mvn

赏梓
2023-03-14

我能想到的使这项工作成功的唯一方法是将surefire插件绑定到部署阶段。这有缺点:

  • 这些测试是在安装工件之后运行的
  • 可能测试中断是因为它们不打算在生命周期的后期运行
  • 我不知道如何确保在部署之前执行它们
 类似资料:
  • 问题内容: 我为我们的maven多项目创建了一个hudson作业,其中包含5个模块,以将工件部署到maven存储库。没关系,只要它成功构建且没有测试失败即可。但是,现在我想满足以下要求: 当模块发生测试故障时,构建应继续扩建并测试其他模块,但变为黄色。使用可以完成,但在下一个要求时会失败。 当模块发生测试故障时,不应将任何工件部署到Maven存储库。 其他项目依赖于该项目的快照,而这些项目只想使用

  • 我是自动化UI测试的新手,我正在使用Cucumber和Selenium研究UI自动化。 所以在我的项目中,我创建了一个钩子类来设置web驱动程序进行测试。类似这样的事情: 但是如果我想用不同的浏览器和不同的环境运行相同的测试。例如,我想用chrome和环境A运行测试,用firefox和环境B运行相同的测试。我计划为不同的环境创建两个属性文件

  • 首先,我不确定必须在gwt-maven项目中部署哪些文件夹和文件:.gwt.settings bin src/main/java target war pom.xml

  • null 我的问题是: 是否需要创建文件,然后在文件中引用它们,或者部署文件也可以嵌入pod定义? K8S文档似乎暗示的部分相当于定义一个pod。那是正确的吗?如果我想声明性地描述多pod部署呢?是否需要多个deployment.yml文件?

  • 我试图在我的项目pom中使用配置文件。xml文件,用于控制将我的war文件部署到特定服务器。例如,我有一个本地配置文件和一个开发服务器配置文件。下面是我如何设置个人资料的 我打电话来 当我尝试此操作时,我可以看到,它不是尝试连接到我的配置中提供的IP地址,而是尝试连接到。我在本地包含用户名和密码的文件。 如果我然后添加选项,以获得更多信息,我可以在插件的调试输出中看到(强调部分已添加) 似乎没有遵

  • 问题:当Nexus上的重新部署被禁用时,我应该如何发布一个有两个独占配置文件的maven项目? 示例(已编辑):我有一个maven项目MyArtifact,在中有两个配置文件(P1和P2),它们会生成两个不同的EAR。每个配置文件配置以包括不同的模块并自动生成。生成的工件是(2个war模块)和(3个war模块)。 问题1(重新部署到nexus): null 问题2(maven-release-pl