作者:jawshan212 | 来源:互联网 | 2023-01-03 12:33
我需要在Gitlab中看到java maven项目的代码覆盖率报告.根据这个,这个和其他一些来源:
我添加jacoco
到插件列表中pom.xml
.
在我的.gitlab-ci.yml
文件中添加了页面作业.
添加Total.*?([0-9]{1,3})%
到项目设置中的代码覆盖解析.
但是没有任何报道报道,或者至少我看不到它.没有覆盖百分比或覆盖率报告页面.
.gitlab-ci.yml
文件内容:
image: maven:latest
variables:
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
cache:
paths:
- .m2/repository/
build:
stage: build
script:
- mvn $MAVEN_CLI_OPTS compile
test:
stage: test
script:
- mvn $MAVEN_CLI_OPTS test
artifacts:
paths:
- target/site/jacoco/
pages:
stage: deploy
dependencies:
- test
script:
- mkdir public
- mv target/site/jacoco/index.html public
artifacts:
paths:
- public
deploy:
stage: deploy
script:
- mvn $MAVEN_CLI_OPTS verify
only:
- master
jacoco
插件pom.xml
:
org.jacoco
jacoco-maven-plugin
0.7.5.201505241946
pre-unit-test
prepare-agent
post-unit-test
test
report
我的项目是一个私人项目gitlab.com
.
管道及其所有4个作业成功通过.
我怎样才能看到报道报道?
1> SKBo..:
您似乎忘了cat
在.gitlab-ci.yml
文件中添加调用.
你应该有类似的东西:
script:
- mvn $MAVEN_CLI_OPTS test
- cat target/site/jacoco/index.html
话虽这么说,我认为这不是最好的方法,因为你需要用原始HTML污染你的输出,以便检索所需的覆盖值.
我建议使用此拉取请求中描述的方法:https://github.com/jacoco/jacoco/pull/488
将jacoco部件放在你的身上 build.xml
使用此awk指令打印正确的代码覆盖率总计:
awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/",
instructions, "instructions covered"; print 100*covered/instructions, "%
covered" }' target/site/jacoco/jacoco.csv
用指令返回的内容替换Gitlab CI regexp: \d+.\d+ \% covered
编辑:
从Gitlab 8.17开始,您可以直接在.gitlab-ci.yml
文件中定义regexp ,如文档中所述.
这看起来似乎是多余的,但如果此正则表达式现在是存储库历史记录的一部分,则可以将其与用于计算它的其他工具一起更改.
2> 小智..:
GitLab员工在这里.
如果您的管理员设置了GitLab页面,您可以通过(在您的项目上)到Settings
- > 来查看工件部署到的URL Pages
.
你应该看到:
恭喜!您的网页服务于: https://your-namespace.example.com/your-project
点击该链接,你应该好好去!我们还扩展了对HTML工件的支持.这个问题及其相关问题讨论了现有的和即将推出的功能,这些功能可能会扩展到您在此处构建的内容.
谢谢.我找到了页面和覆盖报告html文件的链接.但是这个文件只包含简单的代码覆盖百分比.你知道我怎么能看到代码的报道?我的意思是看到覆盖的代码为绿线,未覆盖的代码为红线或类似的东西?
3> Maciej..:
除了@SKBo所说的以外,我还想做一点调整。
有
cat target / site / jacoco / index.html
会污染您的输出结果,使您难以阅读重要内容。
我建议它:
cat your/path/to/jacoco/report/index.html | grep -o '.*'
这样可以大大降低噪音