热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用gitlab-ci.yml文件的代码覆盖率报告

如何解决《使用gitlab-ci.yml文件的代码覆盖率报告》经验,为你挑选了3个好方法。

我需要在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 '.*'

这样可以大大降低噪音


推荐阅读
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • Docker 中创建 CentOS 容器并安装 MySQL 进行本地连接
    本文详细介绍了如何在 Docker 中创建 CentOS 容器,并在容器中安装 MySQL 以实现本地连接。文章内容包括镜像拉取、容器创建、MySQL 安装与配置等步骤。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文探讨了如何通过编程手段在Linux系统中禁用硬件预取功能。基于Intel® Core™微架构的应用性能优化需求,文章详细介绍了相关配置方法和代码实现,旨在帮助开发人员有效控制硬件预取行为,提升应用程序的运行效率。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
author-avatar
jawshan212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有