我一直在努力寻找能够在"测试覆盖率解析中使用的正则表达式"输入" CI / CD管道"页。示例显示不一致的示例,即一些转义括号和其他不符合,百分比符号相同,一些捕获$1
中的显式结果等等,这无助于帮助。无论如何,这是我的文本 - 什么是正则表达式?
CI徽章:
![coverage](https://gitlab.com/mycompany/master/badges/master/coverage.svg?job=coverage)
输出文字:
Unit test coverage:
10.01% blocks
10.01% lines
到目前为止尝试过:(添加斜杠只是为了表示前面的空格或正则表达式)
/ \(\d+\.\d+\%\) blocks/
/ (\d+\.\d+\%) blocks/
/ (\d+\.\d+%) blocks/
/ (\d+\.\d+)% blocks/
答案 0 :(得分:6)
有一个有用的Ruby正则表达式网页。
我的GitLab代码覆盖率解析对我没有帮助。我认为这是因为GitLab中的正则表达式问题似乎存在错误。 https://gitlab.com/gitlab-org/gitlab-ce/issues/21495
答案 1 :(得分:1)
这个正则表达式应该抓住块覆盖:
^\s*(\d+(?:\.\d+)?%)\s*blocks
如果您想获取线路覆盖范围,请使用此选项:
^\s*(\d+(?:\.\d+)?%)\s*lines
GitLab会自动添加前导/
,因此您无需将它们添加到正则表达式中。
为了将来的参考,GitLab是用Ruby编写的,所以你可以在rubular.com
的Ruby中测试这个正则表达式答案 2 :(得分:1)
问题在于覆盖网址查询"?job = coverage"不对。至于正则表达式,我使用了:
\W(\d+(?:\.\d+)%)\sblocks