[英]Running Jenkins integration test without having to rebuild with Maven
我有一些问题,了解Jenkins如何与Maven交互以创建简单的构建pipleines。 例如,假设我想做以下管道:
1 Compile code, run unittest, and package to code.
2 Deploy application to test server.
3 Run integration tests.
这将转化为:
1 mvh clean install
2 deploy.sh
3 mvn verify
对于我的单元测试,我使用surefire并进行集成测试我使用故障保护。 但问题是mvn verify
将重新执行整个构建过程。 我想要做的只是运行集成测试,而不是所有导致验证的步骤。 解决这个问题的标准方法是什么?
这样做的方法是使用maven完成所有操作。 默认的maven构建生命周期对于您要执行的每个步骤都有一个阶段: https : //maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
例如,默认生命周期包括以下阶段(有关生命周期阶段的完整列表,请参阅生命周期参考):
验证 - 验证项目是否正确并且所有必要信息都可用
compile - 编译项目的源代码
test - 使用合适的单元测试框架测试编译的源代码。 这些测试不应要求打包或部署代码
package - 获取已编译的代码并将其打包为可分发的格式,例如JAR。
集成测试 - 如有必要,将软件包处理并部署到可以运行集成测试的环境中
验证 - 运行任何检查以验证包是否有效并符合质量标准
install - 将软件包安装到本地存储库中,以便在本地用作其他项目的依赖项
deploy - 在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。
因此,您希望将工件部署到测试服务器(步骤2),作为集成测试阶段的一部分。 然后你要做的就是跑
mvn clean install
这将清理然后执行所有构建,运行单元测试,将其打包,部署到集成环境,运行集成测试以及在本地存储库中安装工件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.