Coverage 单测覆盖率计算工具,扫描本地覆盖率报告文件,目前可识别 json(js) , json-summary , lcov , jacoco, golang 格式结果,推荐使用 json(js) 或者 lcov 格式报告。
在 Coding-CI 环境中,push、merge_request、mergeable 事件支持计算增量覆盖率结果,其他事件只计算全量覆盖率。
string | string[]glob 格式,指定覆盖率报告文件位置,相对于当前工作目录。
缺省时,将尝试查找当前目录下的 **/+(*coverage*.json|jacoco*.xml|lcov.info|*.lcov)。
number指定全量覆盖率红线,判断如果全量覆盖率百分比小于该值,进程退出码将返回 1,阻断工作流。 缺省时则不进行判断。
number指定增量覆盖率红线,判断如果增量覆盖率百分比小于该值,进程退出码将返回 1,阻断工作流。 缺省时则不进行判断。
stringgit 仓库的 commit-id,用于计算增量覆盖率时,当作计算的起点。
在 Coding-CI 环境中,缺省取代码变更前的 commit-id,例如代码推送前的最新提交,或者合并请求目标分支的最新提交。
其他情况缺省是 HEAD~1。
stringgit 仓库的 commit-id,用于计算增量覆盖率时,当作计算的终点。
在 Coding-CI 环境中,缺省取代码变更后的 commit-id,例如代码推送后的当前提交,或者合并请求源分支的最新提交。
其他情况缺省是 HEAD。
string参与覆盖率计算的代码文件类型白名单,逗号分隔, 如:.json,.ts,.js。
缺省时报告中的文件都会参与计算。
string当覆盖率结果报告目标格式为 golang 时,请指定此参数 为 go,否则会出现计算误差。其他情况可忽略该参数。
booleantrue没有找到覆盖率报告文件时,是否抛出错误终止计算流程。
stringgit 仓库的绝对路径目录。
缺省则取环境变量 CODING_BUILD_WORKSPACE,变量不存在则取当前工作目录。
代码行覆盖率
代码增量行覆盖率
代码分支覆盖率。golang 不支持。
函数覆盖率。golang 不支持。
master:
push:
- stages:
- name: 覆盖率红线
image: codingci/coverage
settings:
# 增量覆盖率不能低于 50%
diffLines: 50
docker run --rm \ -e TZ=Asia/Shanghai \ -e PLUGIN_PATTERN="*/coverage-final.json" \ -e PLUGIN_LINES="90" \ -e PLUGIN_DIFFLINES="50" \ -e PLUGIN_ALLOWEXTS=".ts" \ -e PLUGIN_BREAKIFNOCOVERAGE="true" \ -e PLUGIN_DIFFSTART="HEAD~1" \ -e PLUGIN_DIFFEND="HEAD" \ -v $(pwd):$(pwd) \ -w $(pwd) \ codingci/coverage:latest