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天
- 每次触发流水线,可延长缓存失效(即使构建失败)