首页 > 解决方案 > 从 Jest 到标准输出到 GitLab 的代码覆盖率

问题描述

我在 GitLab CI 中运行代码覆盖率的玩笑测试,GitLab 从 gitlab 中跑步者的标准输出中捕获百分比。

jest --coverage在标准输出中产生覆盖率,gitlab 使用正则/All files[^|]*\|[^|]*\s+([\d\.]+)/表达式捕获它,但是当我 jest --coverage --json --outputFile=xyz.json不幸运行时,jest 不会将代码覆盖率打印到标准输出。

--json当将参数提供给jest 时,我可以做些什么来从 jest 中获取标准输出中的代码覆盖率?

jest version : v22.4.3与 jest-cli 相同

标签: jestjscode-coveragegitlab-ci

解决方案


以下配置将让 GitLab 解释Jest生成的覆盖率报告:

stages:
  - test

Unit tests:
  image: node:12.17.0
  stage: test
  script:
    - jest --coverage
  coverage: /All\sfiles.*?\s+(\d+.\d+)/

GitLab 上有一个未解决的问题,其中包含使用 Jest 生成的覆盖率报告的正确正则表达式(由Create React App使用)。


推荐阅读