Ral*_*kum 1 kotlin gitlab test-coverage gitlab-ci
有人告诉我,不使用 JaCoCo,而是会有一个内部 Gitlab 工具,我可以在其中创建测试覆盖率报告?
我在 Gitlab 仪表板菜单中找不到任何内容。该项目是一个 Android App Kotlin 项目。
问题是您想查看/拥有保险的哪一部分:
对于概述中的覆盖范围并且只是为了获得百分比,您需要使用正则表达式配置您的作业,如何解析它,例如
job1:
# ....
coverage: '/Code coverage: \d+\.\d+/'
Run Code Online (Sandbox Code Playgroud)
https://docs.gitlab.com/ee/ci/yaml/#coverage
我们实际上使用的是 JaCoCo,但为了使覆盖范围可见并在合并请求中包含信息,您必须将所有内容都转换为 Cobertura 报告。
有不同的方法可以实现这一目标:
使用像https://github.com/kageiit/gradle-jacobo-plugin这样的 gradle-plugin
配置非常简洁,如果您已经有 gradle 构建,那么很容易集成
在 CI 管道中有一个自己的步骤 - 请参阅https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html
test-jdk11:
stage: test
image: gradle:6.6.1-jdk11
script:
- 'gradle test jacocoTestReport' # jacoco must be configured to create an xml report
artifacts:
paths:
- build/jacoco/jacoco.xml
coverage-jdk11:
# Must be in a stage later than test-jdk11's stage.
# The `visualize` stage does not exist by default.
# Please define it first, or chose an existing stage like `deploy`.
stage: visualize
image: registry.gitlab.com/haynes/jacoco2cobertura:1.0.7
script:
# convert report from jacoco to cobertura, using relative project path
- python /opt/cover2cover.py build/jacoco/jacoco.xml $CI_PROJECT_DIR/src/main/java/ > build/cobertura.xml
needs: ["test-jdk11"]
artifacts:
reports:
cobertura: build/cobertura.xml
Run Code Online (Sandbox Code Playgroud)
需要注意的是,您始终必须告诉 GitLab CI 您的 cobertura 工件路径:
job:
#...
artifacts:
reports:
cobertura: build/cobertura.xml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3394 次 |
| 最近记录: |