Javascript 如何使用正则表达式从伊斯坦布尔文本摘要报告器中提取测试覆盖率?
Gitlab CI要求您指定一个正则表达式来提取语句代码覆盖率(以便它们可以显示它)。考虑到下面的构建输出(与jest和istanbul一起),我成功地做到了:Javascript 如何使用正则表达式从伊斯坦布尔文本摘要报告器中提取测试覆盖率?,javascript,regex,code-coverage,gitlab,istanbul,Javascript,Regex,Code Coverage,Gitlab,Istanbul,Gitlab CI要求您指定一个正则表达式来提取语句代码覆盖率(以便它们可以显示它)。考虑到下面的构建输出(与jest和istanbul一起),我成功地做到了:/Statements.*(\d+\%)/ 这突出显示了部分语句:53.07%(请参见此处)。但是,我只需要匹配53.07部分,我该怎么做 我只需要匹配53.07部分 使用lazy*?,添加(?:\。\d+)?也匹配浮动,并访问捕获组: var re=/Statements.*(\d+(?:\。\d+))%/; var str='。。。
/Statements.*(\d+\%)/
这突出显示了部分语句:53.07%
(请参见此处)。但是,我只需要匹配53.07部分,我该怎么做
我只需要匹配53.07部分
使用lazy*?
,添加(?:\。\d+)?
也匹配浮动,并访问捕获组:
var re=/Statements.*(\d+(?:\。\d+))%/;
var str='。。。据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据第第第第第===============================================================================================================================================================================================================================================================================================================================================================================================================================\n。。。(其他建造输出);
var res=(m=re.exec(str))?m[1]:“”;
控制台日志(res)代码>啊,是的,我明白了。令人困惑的是,您的模式突出显示与我在regexr上的模式相同,但当我将鼠标悬停在组上时,它显示它只捕获了53.07
,因此从我所知,它可以正常工作,对吗?只需使用gitlab测试一下,我就可以确认它可以工作。谢谢不要注意在线测试人员说的话。相信你最终在目标环境中得到的结果。注意,如果数字总是有小数部分,你甚至可以使用。
... (other build output)
=============================== Coverage summary ===============================
Statements : 53.07% ( 95/179 )
Branches : 66.67% ( 28/42 )
Functions : 30.99% ( 22/71 )
Lines : 50.96% ( 80/157 )
================================================================================
... (other build output)