PHP 代码覆盖率分析

PHP代码覆盖率测试 简介:最近研究了PHP代码覆盖率的测试,后面发现了github一个开源项目(https://github.com/sebastianbergmann/php-code-coverage) ,对PHP代码覆盖率测试已经做得很好了,所以拿来直接用,这里总结怎么用这个开源项目。 环境搭建 一、安装php环境 1、php要选高版本,亲测7.27可行,5.5就不行 二、安装xdebug 这个直接网上搜怎么安... 阅读详情

PHP代码覆盖率分析

平台:
 Windows 2003 Server x64
 内存: 2G

软件需求:
 1. PHP 5.0 或以上版本
 2. Xdebug Zend扩展扩展
http://www.xdebug.org
 3. PEAR XML_Parser 模块1.25 或则以上版本
 4. Spike PHPCoverage 0.8
http://developer.spikesource.com/projects/phpcoverage/


1. 配置文件

<? php
 
define('DS',
 DIRECTORY_SEPARATOR);
 
 
define('CODE_DIR','F:/home/projects/speedtest'); // 被分析的代码目录


 
define('REPORT_GENERATE_DIR', dirname(dirname(dirname(__FILE__))) .DS.  'report' );
 
//echo REPORT_GENERATE_DIR;

?>


2. 运行测试

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<title>
 
</title>
</head>
<body>
<pre>
<? php

 
define("PHPCOVERAGE_HOME", 'F:/home/lab/debugger/spikephpcoverage-0.8/src'
);
 
require_once 'config.php'
;
 
require_once PHPCOVERAGE_HOME . '/CoverageRecorder.php'
;
 
require_once PHPCOVERAGE_HOME . '/reporter/HtmlCoverageReporter.php'
;
 
/*

  * HtmlCoverageReporter 构造函数参数说明
  * 
  * @param string 覆盖率报告标题
  * @param string 样式页文件名称
  * @param string 报告生成目录
  
*/
 
$reporter = new HtmlCoverageReporter('Study Spike PHPCoverage', '',  REPORT_GENERATE_DIR);
 
/*

  * CoverageRecorder 构造函数参数说明
  * 
  * 路径包含和排除数组可以包含任意文件名或者目录
  * 
  * @param array 要分析的PHP代码包含路径
  * @param array 排除路径
  * @param HtmlCoverageReporter HtmlCoverageReporter报告类
  
*/
 
$includePaths = array  (
  
'.','F:/home/projects/speedtest'

 );
 
$excludePaths = array  (
 );
 
/*

  * 注意要排除包含实际测试的目录
  
*/
 
$cov = new CoverageRecorder($includePaths, $excludePaths, $reporter );
 
/*

  * 启动代码覆盖率分析
  
*/
 
$cov-> startInstrumentation();
 
define('all',''
);
 
require_once 'simpletest/unit_tester.php'
;
 
require_once 'simpletest/reporter.php'
;
 
 
// ====================== 包含被测试代码 ============================

 require_once 'F:homeprojectsspeedtestqueryByIspAndArea.php' ;
 
// ====================== 包含被测试代码 ============================

 
 
/*

  * 结束代码覆盖率分析
  
*/
 
$cov-> stopInstrumentation();
 
/*

  * 生成报告,可选的输出摘要信息
  
*/
 
$cov-> generateReport();
 
$reporter->
printTextSummary();
?>

<pre>
</body>
</html>

 

图一. 棕色代码行表示可执行代码,但在运行过程中没有得到执行,蓝色表示可执行代码并在测试过程中得到了执行

图2. 覆盖率摘要

图3. 覆盖率代码分析

  1. Total: 文件总行数
  2. Covered: 执行行数
  3. Missed: 未执行行数
  4. Executeable: 可执行代码总行数
  5. Code Coverage: 覆盖率百分率

 

参考:
1. 简介:
http://developer.spikesource.com/wiki/index.php/Projects:phpcoverage
2. 常见问题: http://developer.spikesource.com/wiki/index.php/Projects:phpcoverageFAQ
3. API文档: http://www.spikesource.com/projects/phpcoverage/doc/index.html

 


 

php-code-coverage:提供用于PHP代码覆盖率信息的收集,处理和呈现功能的库 phpunit / php-code-coverage 提供用于PHP代码覆盖率信息的收集,处理和呈现功能。 安装 您可以使用将该库作为本地的,基于项目的依赖项添加到您的项目中: composer require phpunit/php-code-coverage 如果仅在开发过程中需要该库(例如,运行项目的测试套件),则应将其添加为开发时依赖项: composer require --dev phpunit/php-code-coverage 用法 <?php declare (strict_types= 1 ); use SebastianBergmann \ CodeCoverage \ Filter ; use SebastianBergmann \ CodeCoverage \ Driver \ Selector ; use SebastianBergmann \ Code 立即下载

相关推荐

PHP代码覆盖率统计详解

一 安装php环境 二 统计php代码覆盖率 1 需要安装xdebug 安装步骤: //www.jb51.net/article/116419.htm 测试环境 LNMP 军哥一键包1.3版本 PHP 7.0.7 Xdebug 2.6 配置步骤 git clone git://github.com/xdebug/xdebug.git cd xdebug find / -name phpize /usr/bin/phpize find / -name php-config ./configure --enable-xdebug --with-php-config=/usr/loca

初学Phreeze 6,reporter文件

Phreezer.php里面的函数, public function IncludeModel($objectclass) { Includer::RequireClass($objectclass, array("Model/","Reporter/") ); } Query()方法里面有这句话 1 $custom = $this-...

weixin_33910434的博客 119

深入解析LVDS电平标准在LCD屏接口设计中的关键作用

本文深入解析了LVDS电平标准在LCD屏接口设计中的核心作用。文章不仅阐释了LVDS低电压差分信号的工作原理、关键电气参数及抗噪优势,还详细对比了VESA与JEIDA两种主流数据格式,并提供了从PCB布局布线到信号调试的实战避坑指南,是确保高速、稳定显示的关键技术参考。

weixin_28419039的博客 334

用Logisim实现弹球游戏:从数字逻辑到游戏引擎的实践

数字逻辑是计算机硬件设计的基石,它通过逻辑门、触发器等基本元件构建出复杂的运算与控制单元。其核心原理在于利用布尔代数和时序电路,将现实世界的连续问题转化为离散的二进制信号进行处理。掌握数字逻辑不仅有助于理解计算机底层工作机制,更能培养系统级的硬件设计思维,在CPU设计、嵌入式系统和数字信号处理等领域具有广泛应用。本文以Logisim为实践平台,通过构建一个完整的弹球游戏,将抽象的数字逻辑概念具象化。读者将学习如何运用状态机、计数器、比较器等核心元件,实现游戏中的运动控制、碰撞检测等关键功能,深入理解数据通路

culuo8053的博客 465

别再为reg2icg的setup违例头疼了!手把手教你用ICC2/Innovus这3招搞定(附实战数据对比)

本文详细介绍了在ICC2/Innovus中解决reg2icg的setup违例的三种高效方法,包括早期时钟树预估、精准控制时钟延迟与门控检查以及ICG专用优化选项组合。通过实战数据对比,展示了不同策略的效果差异,帮助工程师快速优化时序路径,提升芯片性能。

weixin_42569329的博客 404

RandLA-Net 调通代码1:Windows 11 + Tensorflow 2.4 + S3DIS数据集【踩坑+填坑】

TF不上进啊,学学pytorch

累了就要打游戏 2480

PHP代码覆盖率

参考:https://blog.youkuaiyun.com/nece001/article/details/112713712xdebug的这一项配置必须要有coverage,逗号间不能有空格!

nece001的专栏 925

单细胞分析(19)—— 单细胞转录组基因集评分方法

在单细胞RNA测序(scRNA-seq)分析中,基因集评分(Gene Set Scoring)是一项关键任务,能帮助研究者识别细胞功能状态

阅读文献,记录学习笔记 2439

phpcov 项目使用教程

phpcov 项目使用教程 1. 项目的目录结构及介绍 phpcov 是一个用于 PHP 代码覆盖率分析的工具,其 GitHub 仓库的目录结构如下: phpcov/ ├── build/ ├── src/ ├── tests/ ├── tools/ ├── .gitattributes ├── .gitignore ├── ChangeLog.md ├── LICENSE ├── README....

gitblog_00454的博客 370

高云FPGA系列教程(7):ARM GPIO外部中断

高云GN1NSR-4C共有16个GPIO,每个GPIO可配置成输入或输出模式,支持中断输入,触发方式可选择:上升沿、下降沿、高电平、低电平触发。中断优先级可通过NVIC进行设置,支持 0-7 级可编程中断优先级。

whik1194的博客 1375

探索如何利用CST和ADS进行DDR的SIPI联合仿真

本文系统介绍了CST和ADS两款工具进行DDR信号完整性/电源完整性(SI/PI)联合仿真的方法。CST采用工作室协同方式,通过PCB布局导入、材料设置、模型分配等步骤,重点分析了电源阻抗优化和信号波形质量。ADS则利用SIPro、PIPro等专用工具,突出系统级验证和自动化优化功能。两者各有优势:CST擅长3D结构精确建模,ADS更适于快速系统验证。文章建议可根据项目需求混合使用两种工具,并提供了模型简化、频带选择等实用技巧。通过对比分析,为工程师选择仿真工具提供了决策参考。

一只豌豆象的博客 1150

反射API与PHP代码覆盖率分析

在PHP中,反射(Reflection)API被用于在运行时检查和修改代码的行为。另一方面,代码覆盖率分析是一种度量测试执行了多少源代码的技术。这两个概念在PHP中通常是分开的,但了解它们对于编写和维护高质量的代码都是很重要的。

api77的博客 703

课程1:认识Asp.net Core Web API

本文是《.Net Core从零学习搭建权限管理系统》教程专栏的导航站(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)专栏介绍:以实战为线索,基于.Net 7 + REST + Vue、前后端分离,不依赖任何第三方框架,从零一步一步讲解权限管理系统搭建。专栏适用于人群:Web后端开发人员Web API是一个很广泛的概念,Asp.net Core Web API是.NET框架用于创建RESTful风格的项目、用于轻松构建可供多个客户端访问的HTTP服务。1、支持RestFul风格编程;

成长的足迹 1255

PHP代码覆盖率终极指南:PCOV与Xdebug性能对比分析

在PHP开发中,代码覆盖率是衡量测试质量的重要指标。本文将深入对比PCOV和Xdebug两大主流代码覆盖工具,帮助开发者选择最适合的方案。🎯 ## 什么是代码覆盖率? 代码覆盖率是衡量测试用例执行代码程度的指标,它能告诉你测试覆盖了代码库的哪些部分。对于PHP项目来说,高代码覆盖率意味着更可靠的代码质量和更少的潜在bug。 ## PCOV vs Xdebug:性能大比拼 ### PCOV

gitblog_00041的博客 834

RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络

本文记录的是利用颈部结构优化RT-DETR的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 2228

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PCOV vs Xdebug:PHP代码覆盖率工具性能对比完整分析

在PHP开发的世界中,代码覆盖率测试是确保软件质量的关键环节。对于开发者和团队来说,选择合适的代码覆盖率工具直接影响着开发效率和项目性能。本文将为您深入分析两个主流的PHP代码覆盖率工具——**PCOV**和**Xdebug**,从性能、易用性、兼容性等多个维度进行全面对比,帮助您做出明智的选择。🚀 ## 什么是PHP代码覆盖率? 代码覆盖率是衡量测试用例执行了多少源代码的指标,它帮助开发者

gitblog_00184的博客 669

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

终极指南:如何使用code-unit-reverse-lookup进行PHP代码覆盖率分析 [特殊字符]

code-unit-reverse-lookup是一个专业的PHP库,专门用于**代码单元逆向查找**功能。这个强大的工具能够精确地确定任意一行代码属于哪个函数或方法,是进行**PHP代码覆盖率分析**的必备利器。 ## 什么是code-unit-reverse-lookup? code-unit-reverse-lookup库的核心功能是**代码行号与函数映射**。当你需要分析代码覆盖率报告

gitblog_00568的博客 334

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【PHP开发900个实用技巧】445.代码覆盖率分析:提高测试质量的量化指标

代码覆盖率实战指南:从工具配置到可持续监控 本文系统介绍了PHP代码覆盖率分析的完整方法论。首先解析了代码覆盖率的本质,强调不能仅满足于行覆盖率,而需关注分支和路径覆盖。通过典型错误案例展示了虚假覆盖率的危害,并提供了三层穿透式覆盖的解决方案。 文章重点剖析了五种常见的"假覆盖"陷阱,包括条件分支伪装和Setup污染等问题,给出了具体的打假策略。在工具层面,详细讲解了Xdebug+PHPUnit的配置要点和报告解析技巧,帮助开发者搭建覆盖率分析环境。 最后提出了建立可持续监控体系的方案,

852

如何快速生成与分析 Yii 2 PHP 框架的代码覆盖率报告

Yii 2 作为一款快速、安全且专业的 PHP 框架,其代码质量和测试覆盖率对于项目稳定性至关重要。本文将详细介绍如何为 Yii 2 项目生成和分析代码覆盖率报告,帮助开发者全面了解测试覆盖情况,提升代码质量。 ## 📋 准备工作:环境与依赖 在生成代码覆盖率报告前,需确保开发环境满足以下条件: 1. **PHP 环境**:推荐 PHP 7.4 及以上版本 2. **PHPUnit**:Y

gitblog_00166的博客 355

Selenium与php-code-coverage集成:实现UI自动化测试的PHP代码覆盖率分析

在软件测试领域,代码覆盖率是衡量测试用例对源代码执行程度的重要指标,它通过插桩技术记录程序运行时哪些代码行、分支和路径被实际执行。其技术价值在于为开发团队提供客观、量化的质量评估依据,帮助识别测试盲区,尤其是在复杂的条件分支和异常处理逻辑中。在Web应用开发场景中,UI自动化测试虽然能验证前端交互的正确性,但往往无法透视后端代码的执行情况。通过将Selenium WebDriver与php-code-coverage工具集成,可以构建一个从用户操作到后端代码执行的完整监控链路,从而在持续集成流水线中实现端到

weixin_28677451的博客 291

Webgrind: 快速高效的 PHP xdebug 分析器

希望本文能够帮助您了解 Webgrind,并鼓励您试用这个优秀的工具。如果您有任何问题或反馈,请随时与我们联系!

gitblog_00050的博客 521

php覆盖率,Php代码覆盖率之php-code-coverage工具介绍

当测试人员进行php代码测试的时候,可能会产生这样的疑问:新增的测试用例应该针对哪些代码进行覆盖,是否实现了增量代码全覆盖?当前已有自动化case是否能够覆盖到所有的代码分支进而实现自动化回归测试?Php-code-coverage是一个开源类库,它提供了收集、处理和展现PHP代码覆盖率信息的功能,可以直接从github获取源码。使用php-code-coverage工具可以帮助测试人员hold住...

weixin_36325174的博客 1127

PHPunit+Xdebug 配置计算代码覆盖率以及遇到的问题

build code coverage report 有两种方法: 1.直接执行 phpunit 要执行的测试文件 --coverage-html ./tests/codeCoverage 命令 Error: No whitelist is configured, no code coverage will be generated. 解决办法:在当前目录下创建phpunit.xml 我的单元测试文件目录为当前文件夹的test目录下 <?xml version="1.0" encoding="U

JineD的博客 1359

php调试xdebug_使用Xdebug调试和分析PHP

PHP is the most popular language for web development, but a common criticism against it used to be that it lacked a suitable debugger. Developers using languages like Java and C# enjoy a powerful suit...

culi3182的博客 909
上一篇: 用javascript操作select
下一篇: PHP5自动加载
httpnet
博客等级 码龄23年 7粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值