获取 Gitlab CI 覆盖率和流量覆盖率报告

Get Gitlab CI coverage with flow coverage report

我正在使用 flow-coverage-report 通过 Flow 获取我的代码的覆盖率。我在我的 Gitlab CI 管道中添加了一个作业来执行它并检索覆盖率。

jobName:
  stage: stage
  script:
    - ./node_modules/.bin/flow-coverage-report
  coverage: /MyProject\s*│\s*([\d\.]+)/

脚本的输出有很多行,尤其是:

┌───────────┬─────────┬───────┬─────────┬───────────┐
│ project   │ percent │ total │ covered │ uncovered │
│ MyProject │    87 % │ 62525 │   54996 │      7529 │
└───────────┴─────────┴───────┴─────────┴───────────┘

他们没有使用管道符 |对于 table,但是 │

当我用 Rubular as explained in the GitLab Documentation 调试正则表达式时,我在匹配组中得到了正确的结果。

但是,每次我的作业完成时,它都没有任何覆盖值。我错过了什么吗?字符显示不同吗?

注意:例如,我对 Jest 的报道没有任何问题。

好的,在深入研究代码和其他地方后,我在输出中找到了罪魁祸首 => 颜色。

上面table的第一行居然显示为绿色!

因此,为了让 GitLab 正则表达式解释正确的值,可以在正则表达式中包含颜色,或者像我一样去除颜色:

./node_modules/.bin/flow-coverage-report | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"

多亏了这个answer

希望对您有所帮助。