跳到主要内容

Golang 单元测试

表单介绍

  • Golang 版本号:下拉列表选择合适的 Golang 版本,插件执行时会根据选择的版本初始化 Golang 环境。

  • 测试命令:测试命令为用户自定义测试命令,命令执行目录为代码库根路径,支持 ${参数Key} 获取环境变量,注意添加 set -e 可控制脚本命令出错自动退出。

# 默认使用goproxy.cn用户可手动调整
export GOPROXY=https://goproxy.cn
# 默认的单元测试命令
# 输出测试报告目录到当前工作目录,可自动上传并展示
mkdir -p golang-report
# 未使用Go Mod的用户需要打开一下注释
# export GOFLAGS=-mod=vendor
go test -v -json -cover -coverprofile cover.out ./... > golang-report/report.jsonl
go tool cover -html=cover.out -o golang-report/index.html
  • 测试报告目录:测试报告目录为测试命令执行后生成的测试报告所在目录,例如 golang-report

  • 测试报告文件:测试报告文件为 json 测试报告文件名称,例如 report.jsonl

  • 测试报告入口文件:测试报告入口文件为 html 测试报告入口文件名称,例如 index.html

  • 质量关卡:在测试类插件中,您可进行质量关卡的配置;若在任务执行过程中,实际指标若低于您配置的指标则关卡生效,流水线任务会展示失败,且串行任务不会继续执行

    • 行覆盖率:指已经被执行到的语句占总可执行语句(不包含类似C++ 的头文件声明、代码注释、空行等等)的百分比
    • 测试通过率:test case 的通过率
  • 构建缓存

缓存参数支持绝对路径、相对路径两种写法,例如:

  • /root/.m2
  • ~/.m2
  • xxx/xxx 相对于代码库的根目录
  • /root/workspace/xxx

规则说明:

  • 所谓缓存,实质上就是把我们流水线中重复使用的模块,打包上传的S3中存储,当再次触发流水线时,从S3中下载解压缓存文件
  • 只有流水线构建成功,才会上传更新缓存文件
  • 缓存文件默认失效30天
  • 每次触发流水线,可延长缓存失效(即使构建失败)