gpt4 book ai didi

jakarta-ee - 仅使用 Maven 在 CI 服务器上运行集成测试

转载 作者:行者123 更新时间:2023-12-01 11:46:30 25 4
gpt4 key购买 nike

每次构建都运行单元测试但完全跳过集成测试阶段是否明智 - 将其留给 CI 服务器?

目前我正在做一个 JavaEE 项目,它几乎只被一些集成测试覆盖,这些测试写得不好并且需要很多时间。每次我进行任何更改时,我都必须等待几分钟才能完成构建(大约 90% 的时间用于集成测试)。

我的想法是配置一些 CI 服务器,例如Jenkins,这样它就可以获取对存储库所做的任何提交(或者在 Maven 构建之后更好)并运行带有集成测试的 Maven 构建。但是有没有可能以这样的方式配置 Maven,当我键入 mvn install 时,它会编译-运行单元测试-构建项目,但完全省略集成阶段(以加快开发速度)。然后 CI 会接手并再次开始运行构建,但这次有集成测试吗?

通过这种方式,更改一些代码和部署之间的时间会更短,也不会那么令人沮丧,并且在 CI 服务器完成构建后的几分钟内,任何与集成相关的错误都会被缓存起来。

这是个好主意吗?谁能建议如何配置 Maven 来获得这种行为?

最佳答案

您应该能够使用配置文件执行此操作。尽管我可能需要有关集成测试配置的更多信息。多年来,我一直在使用 maven-failsafe-plugin 和配置文件的组合对项目进行此操作。以下是来自 pom 的示例片段:

<profiles>
<profile>
<id>integration-tests</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

在正常的本地开发过程中,运行 mvn install 不应运行通过 maven-failsafe-plugin 运行的集成测试。然后,您可以配置 CI 服务器以运行 mvn clean install -Pintegration-tests

关于jakarta-ee - 仅使用 Maven 在 CI 服务器上运行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com