当前位置: 首页 > wzjs >正文

河南专业的做网站的公司海外网络推广方案

河南专业的做网站的公司,海外网络推广方案,做网站友情链接的步骤,网页设计与制作教程第四版清华大学出版社文章目录 Jacoco是什么Jacoco的主要功能(一)多样化覆盖率指标分析(二) 丰富的报告生成(三)实时数据收集 Jacoco的工作原理(一)字节码增强(二)测试执行与数据收…

文章目录

  • Jacoco是什么
  • Jacoco的主要功能
    • (一)多样化覆盖率指标分析
    • (二) 丰富的报告生成
    • (三)实时数据收集
  • Jacoco的工作原理
    • (一)字节码增强
    • (二)测试执行与数据收集
  • 使用方法
    • 需要工具
    • 步骤
    • 本地启动开启Jacoco覆盖率
    • 效果

在测试过程中,为了解决 统计【行覆盖率】和【已经覆盖行数】两个指标,便于快速查看和复制,我们可以通过Jacoco去解决。

Jacoco是什么

Jacoco 是专门用于 Java 项目测试覆盖率检测的工具,由 EclEmma 项目演变而来。它能够精准地分析出代码中哪些部分已被测试覆盖,哪些部分尚未覆盖,为开发者优化测试用例提供了明确方向
在这里插入图片描述

Jacoco的主要功能

(一)多样化覆盖率指标分析

Jacoco 支持多种覆盖率指标,涵盖行覆盖、分支覆盖、方法覆盖和类覆盖等。行覆盖用于判断代码的每行是否至少有一个指令被执行;分支覆盖聚焦于如 if - else、switch 等语句分支的执行情况;方法覆盖判断方法是否被调用执行;类覆盖则确定类是否被执行。通过这些指标,开发者能全方位了解代码的测试覆盖状况。

(二) 丰富的报告生成

它能生成详细的覆盖率报告,且支持 HTML、XML 和 CSV 等多种格式。这些报告清晰展示代码的覆盖情况,突出显示未覆盖的代码区域,方便开发者分析和排查问题。

(三)实时数据收集

在测试运行时,Jacoco 可动态收集覆盖率数据,无需事后处理,能实时反映代码的测试状态,助力开发者迅速调整测试策略。

Jacoco的工作原理

(一)字节码增强

在测试运行前,Jacoco 会对 Java 字节码进行修改,插入覆盖率收集的逻辑,这一过程即 “字节码增强”。增强后的字节码包含用于记录代码路径执行情况的指令,为准确捕捉代码执行信息奠定基础。

(二)测试执行与数据收集

测试用例运行时,增强后的字节码会执行插入的覆盖率记录逻辑,实时收集代码行、分支、方法和类的执行信息。Jacoco 采用轻量级代理模式,对测试执行性能影响极小。测试完成后,Jacoco 汇总收集到的覆盖率数据,生成详细的覆盖率报告,清晰展示各代码单元的覆盖情况。

使用方法

需要工具

油猴插件:https://www.tampermonkey.net/

步骤

  • 安装tampermonkey插件,并打开插件开关
    在这里插入图片描述
  • 点开详情,将允许访问文件网址打开,才可以生效与本地生成的jacoco覆盖率报告
    在这里插入图片描述
  • 通过管理面板,进入管理页面,新增脚本
    在这里插入图片描述
  • 通过添加新的脚本,将以下脚本键入并保存

// ==UserScript==
// @name         白盒覆盖率报告覆盖率插件
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  用于jacoco报告的计算行覆盖率!
// @author       lulu
// @match        https://coverage.myshopline.cn/jacoco/report/*
// @match        file:///*.html
// @icon         https://www.google.com/s2/favicons?sz=64&domain=myshopline.cn
// @grant        GM_addStyle
// @grant        unsafeWindow
// @grant        GM_setClipboard
// @require      https://unpkg.com/jquery@3.6.0/dist/jquery.min.js
// @require      https://unpkg.com/sweetalert2@10.16.6/dist/sweetalert2.all.min.js// ==/UserScript==(function() {'use strict';var element = document.querySelector("tbody");var thead = document.querySelector('td#i');var theadtdratio = document.createElement('td');var coveredtd = document.createElement('td');// 底部var foot = document.querySelector('tfoot > tr > td:nth-of-type(9)');var footcovered = document.createElement('td');var footratiotd = document.createElement('td');footcovered.setAttribute('class','ctr2')footratiotd.setAttribute('class','ctr2')foot.before(footcovered);foot.after(footratiotd);//设置表头theadtdratio.innerHTML = '行覆盖率比例';coveredtd.innerHTML = 'Covered';thead.before(coveredtd);thead.after(theadtdratio);var coveredConut = 0;// 获取地址var url =window.location.href;var baseUrl = url.substring(0,url.lastIndexOf('/')+1)console.log('读取地址:',baseUrl)for(var i=0; i<element.rows.length; i++){var miss = parseInt(element.rows[i].cells[7].innerHTML.replace(/,/g, ""));var lines = parseInt(element.rows[i].cells[8].innerHTML.replace(/,/g, ""));var link = element.rows[i].cells[0].querySelector('a').getAttribute('href');var covered = lines - missvar result =Math.round((1- miss/lines) * 10000) / 100;//添加结果var td = document.createElement('td');var alink = document.createElement('a');alink.innerHTML = result +'%'alink.href = baseUrl + linktd.appendChild(alink);td.setAttribute('class','ctr2');var coveredtd1 = document.createElement('td');coveredtd1.innerHTML = covered;coveredtd1.setAttribute('class','ctr2')element.rows[i].cells[7].after(coveredtd1);element.rows[i].cells[9].after(td);coveredConut += covered;//totalLines += result;/*//TODO 准备做一键复制var copyButton = document.createElement('span');copyButton.id = i;copyButton.innerHTML = miss +'\n' + lines +'\n' + resultelement.rows[i].appendChild(copyButton);copyButton.onclick = function(miss){//copy(miss+'\t'+lines+'\t'+result);console.log('copy:'+copyButton.innerHTML);//copy(parseInt(element.rows[i].cells[7].innerHTML.replace(/,/g, ""))+'\t'+parseInt(element.rows[i].cells[8].innerHTML.replace(/,/g, ""))+'\t'+td.innerHTML);}*///处于70-80if(result>=75 && result < 100){td.style.backgroundColor = '#00FFCC';}else if(result == 100){td.style.backgroundColor = 'green';}//低于70%else{td.style.backgroundColor = 'red';}//总覆盖率//totalLines += result;console.log(miss,lines,link,result);}footcovered.innerHTML = coveredConut;var tatolratiotd = coveredConut/parseInt(document.querySelector('tfoot > tr > td:nth-of-type(10)').innerHTML.replace(/,/g, "")) ;footratiotd.innerHTML = Math.round(tatolratiotd * 10000) / 100 + '%';if(tatolratiotd>=75 && tatolratiotd < 100){footratiotd.style.backgroundColor = '#00FFCC';}else if(tatolratiotd == 100){footratiotd.style.backgroundColor = 'green';}//低于70%else{footratiotd.style.backgroundColor = 'red';}const copy = (text) => {GM_setClipboard(text, 'text');}})();
  • 打开对应开关即可
    在这里插入图片描述

本地启动开启Jacoco覆盖率

  • 编辑运行配置
    在这里插入图片描述

  • 调整运行模板的junit code coverage配置为项目目录,并选择jacoco覆盖率统计工具
    在这里插入图片描述

  • 导出本地日志,保存后会自动打开报告可以查看
    在这里插入图片描述

在这里插入图片描述

效果

在这里插入图片描述

http://www.dtcms.com/wzjs/352384.html

相关文章:

  • 苏州网站建设公司哪个好重庆seo培训
  • 济南网络推广公司排行榜整站seo
  • wordpress小程序搭建广东网站seo营销
  • 现在主流网站用什么做的搜索引擎优化原理
  • 中企动力初期做的网站吉林seo关键词
  • 长沙电商网站建设推广软文是什么
  • 英文网站开发免费做网站怎么做网站链接
  • 网站源码程序互联网推广好做吗
  • 智能网站建设找三好科技百度系app有哪些
  • 网站关键词不收录百度统计登录
  • 有哪些平台可以发布厂家信息郑州专业seo推荐
  • 北京门户网站建设竞价恶意点击立案标准
  • 那些做软件的网站深圳推广公司
  • 龙岗附近公司做网站建设多少钱如何查询百度搜索关键词排名
  • 如何做网店网站赛雷猴是什么意思
  • 辽阳建设银行网站推广软件一键发送
  • 深圳网址网站建设公司百度热搜榜排名
  • 睡不着偷偷看b站seo外包公司费用
  • 邯郸做网站最好的公司百度爱采购推广一个月多少钱
  • 哈尔滨最好的网站建设公司游戏推广员是诈骗吗
  • 上传图片的网站要怎么做网站维护工作内容
  • 抖音开放平台常州百度关键词优化
  • 做网站商城怎么样北京公司排名seo
  • 法律检索网站开发2022国内外重大新闻事件10条
  • 做网站挣钱打擦边球网上卖货的平台有哪些
  • 泉州市知名网站建设公司新品怎么刷关键词
  • 家庭宽带做网站鄂尔多斯seo
  • word网站的链接怎么做青岛排名推广
  • 网站封装百度开户代理商
  • 做写手哪个网站好网站推广软件免费