Dha*_*ila 8 code-coverage gitlab-ci jestjs
我在GitLab CI中进行了代码覆盖率的玩笑测试,GitLab从gitlab中的运行程序的标准输出中捕获了百分比。
jest --coverage会在stdout中产生覆盖率,而gitlab使用/All files[^|]*\|[^|]*\s+([\d\.]+)/regexp 捕获它,但是当我jest --coverage --json --outputFile=xyz.json不幸地运行时,
开玩笑地说不会将代码覆盖率打印到stdout中。
将--json参数提供给玩笑时,如何从玩笑中获得stdout中的代码覆盖率?
jest version : v22.4.3 对于jest-cli一样
nde*_*ker 12
以下配置将使GitLab解释Jest生成的覆盖率报告:
stages:
- test
Unit tests:
image: node:10.15.0
stage: test
script:
- jest --coverage
coverage: /All\sfiles.*?\s+(\d+.\d+)/
Run Code Online (Sandbox Code Playgroud)
GitLab上有一个未解决的问题,其中包含使用Jest生成的覆盖率报告的正确正则表达式(由Create React App使用)。
med*_*kch 12
我使用以下正则表达式来解析text-summaryJest for Gitlab 的覆盖率报告:/^(?:Statements|Branches|Functions|Lines)\s*:\s*([^%]+)/
请注意,Gitlab 只会考虑最后一个匹配项。所以上面可以写成/^Lines\s*:\s*([^%]+)/。我提供了完整的示例,以便您可以选择对您的项目最有意义的示例。
从 Gitlab 15 开始,您需要在文件中提供此正则表达式.gitlab-ci.yml作为coverage密钥,而不再在 Gitlab 项目设置中提供。
“文本摘要”报告在 StdOut 中如下所示:
=============================== Coverage summary ===============================
Statements : 80.49% ( 2611/3244 )
Branches : 65.37% ( 923/1412 )
Functions : 76.48% ( 582/761 )
Lines : 80.44% ( 2583/3211 )
================================================================================
Run Code Online (Sandbox Code Playgroud)
确保您已将text-summary报道记者纳入您的jest.config.js:
coverageReporters: ['text-summary', 'lcov', 'cobertura'],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |