Jenkins如何基于Git提交记录仅执行变更的Robot Framework测试文件
可行实现方案如下
1. 拉取变更文件列表
首先在Jenkins构建的Shell执行步骤中,通过Git命令对比本次提交和上一次构建成功的提交差异,过滤出所有后缀为.robot的变更文件:
# 过滤出两次提交之间变更的robot测试文件 CHANGED_ROBOT_CASES=$(git diff --name-only $GIT_PREVIOUS_SUCCESSFUL_COMMIT $GIT_COMMIT | grep '\.robot$')
注:$GIT_PREVIOUS_SUCCESSFUL_COMMIT和$GIT_COMMIT是Jenkins Git插件默认提供的环境变量,无需额外配置
2. 加兜底逻辑避免异常
如果是首次构建、或者本次提交没有变更任何robot用例,可以加兜底逻辑执行全量用例或者直接退出构建:
if [ -z "$CHANGED_ROBOT_CASES" ] then echo "未检测到Robot用例变更/首次构建,执行全量用例" robot ./ exit 0 fi
3. 仅执行变更的用例
直接将筛选出的变更用例路径作为参数传给robot命令即可:
robot $CHANGED_ROBOT_CASES
扩展适配场景
如果你的框架存在公共关键字、公共变量等依赖文件,修改这类文件会影响所有测试用例,可以额外加检测逻辑,只要这类文件变更就执行全量用例:
# 示例:检测公共关键字目录是否有变更 CHANGED_PUBLIC_FILES=$(git diff --name-only $GIT_PREVIOUS_SUCCESSFUL_COMMIT $GIT_COMMIT | grep '^Keywords/') if [ -n "$CHANGED_PUBLIC_FILES" ] then echo "检测到公共依赖文件变更,执行全量测试用例" robot ./ exit 0 fi
内容的提问来源于stack exchange,提问作者Prasanna
相关产品推荐
相关产品推荐

