如何使用正则表达式从伊斯坦布尔文本摘要报告中提取测试覆盖率?
How do I extract test coverage from the istanbul text-summary reporter with a regex?
Gitlab CI要求您指定一个正则表达式来提取语句的代码覆盖率(以便他们可以显示它)。给出下面的构建输出(jest和istanbul),我已经设法做到了:/Statements.*('d+'%)/
... (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)
这突出显示了Statements : 53.07%
部分(参见这里:http://regexr.com/3e9sl)。但是,我只需要匹配53.07部分,我该怎么做?
我只需要匹配53.07部分,
使用惰性.*?
,添加(?:'.'d+)?
也匹配浮点数,并访问捕获组:
var re = /Statements.*?('d+(?:'.'d+)?)%/;
var str = '... (other build output)'n=============================== Coverage summary ==============================='nStatements : 53.07% ( 95/179 )'nBranches : 66.67% ( 28/42 )'nFunctions : 30.99% ( 22/71 )'nLines : 50.96% ( 80/157 )'n================================================================================'n... (other build output)';
var res = (m = re.exec(str)) ? m[1] : "";
console.log(res);
注意Statements.*?('d+(?:'.'d+)?)%
也允许整数值,而不仅仅是浮点数。
-
Statements
-一个文字字符串 -
.*?
- 0个或多个除空格以外的字符,但尽可能少 -
('d+(?:'.'d+)?)
-组1(您需要的值将被捕获到该组中)捕获1+数字和.
的可选序列和后面的1+数字 -
%
-一个百分号(如果你需要打印它,把它移到上面的括号里)
相关文章:
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 在数据提取完成之前进行页面渲染
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- 使用Jest测试React Native应用程序
- 为函数代码编写测试
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何使用JS/nightwatchjs并行运行多个测试
- 使用量角器的当前url单元测试的getTitle
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- JavaScript滚动脚本-在测试中激发,而不是在开发站点上
- 如何在Javascript中从字符串中提取某些单词
- AngularJS指令单元测试中未定义的函数
- 一个密码测试程序,如果存在空格,它会提醒用户
- 测试角度解析方法
- RegEx JavaScript:数字后的符号提取
- 如何使用正则表达式从伊斯坦布尔文本摘要报告中提取测试覆盖率?