PHP代码覆盖率

news/2023/12/10 15:17:58

先安装xdebug

参考:https://blog.csdn.net/nece001/article/details/112713712

xdebug的这一项配置必须要有coverage,逗号间不能有空格!
xdebug.mode = debug,coverage

代码覆盖率

参考文档:(代码已过时,我在下面做了修改)
https://blog.csdn.net/galen2016/article/details/82791856

安装php-code-coverage

代码仓库:https://github.com/sebastianbergmann/php-code-coverage

安装命令:

composer require phpunit/php-code-coverage

在根目录新增一个prepend.php

<?php/*** Created by PhpStorm.* User: 灵枢* Date: 2018/9/5* Time: 下午5:02*/
require_once dirname(__FILE__) . '/vendor/autoload.php';use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\Driver\Xdebug3Driver;
use SebastianBergmann\CodeCoverage\Filter;$filter = new Filter;
$filter->includeDirectory('/path/to/directory');// 实例初始化做了修改
$coverage = new CodeCoverage((new Xdebug3Driver($filter)),$filter
);$coverage->start('<Site coverage>'); #开始统计
register_shutdown_function('__coverage_stop', $coverage); #注册关闭方法function __coverage_stop(CodeCoverage $coverage)
{$coverage->stop(); #停止统计$writer = new \SebastianBergmann\CodeCoverage\Report\Html\Facade;# 设置生成代码覆盖率页面的路径$writer->process($coverage, dirname(__FILE__) . '/coverage_html');
}

新建文件echoNumber.php,用来测试的覆盖率

<?php/*** Created by PhpStorm.* User: 灵枢* Date: 2018/8/31* Time: 下午3:18*/
include_once("prepend.php");
class echoNumber
{function add($a, $b){echo $a + $b . PHP_EOL;}function jian($a, $b){echo $a - $b . PHP_EOL;}function cheng($a, $b){echo $a * $b . PHP_EOL;}function chu($a, $b){echo $a / $b . PHP_EOL;}function call($a, $b){$this->add($a, $b);}
}$f = new echoNumber();
$f->add(3, 4);
$f->cheng(2, 3);
$f->call(5, 6);

运行命令:

d:> php echoNumber.php

运行后就会在根目录下新增一个文件夹,用来存放生成html报告


https://dhexx.cn/news/show-25396.html

相关文章

Appium控件交互

与Web元素操作一样&#xff08;参考Selenium Web元素操作&#xff09;&#xff0c;定位到APP控件元素后&#xff0c;可以对控件进行一系列的操作&#xff0c;实现与APP交互&#xff0c;比如点击、文本输入、元素属性获取等。 目录元素操作元素常用操作方法Python测试实例元素属…

基于PLC的棒料自动上料车削加工装置设计

目 录 1 绪论 1 1.1自动上下料机现状 1 1.2设计目的 1 1.3 国内外研究方向 2 1.4 设计原则 2 2 棒料自动上料车削加工装置方案设计 3 2.1自动上料车削加工装置的总体设计 3 2.1.1 车削加工装置总体结构的类型 3 2.1.2 设计具体采用方案 4 2.2 车削加工装置腰座结构的设计 4 2.…

Android WebView测试

混合应用中包含 Web 视图的应用&#xff0c;在 Appium 介绍及环境安装 中介绍了appium支持WebView测试&#xff0c;本文将分享Android 混合页面的测试方法。 目录WebView测试环境准备手机端PC端查看手机浏览器版本查看手机webview版本客户端代码WebView元素定位Android混合页面…

人脸识别(四)

源码位置&#xff1a;https://github.com/comhaqs/face_find.git 分支&#xff1a; develop_face_recognition opencv的人脸识别模块现在是放在另外一个库opencv_contrib里&#xff0c;需要编译到opencv里才可以使用&#xff0c;故这里将opencv和opencv_contrib的源码都下下来…

基于RFID的学生一卡通管理系统的设计与实现

目 录 摘 要 I ABSTRACT II 第1章 绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 1 1.3研究主要内容 2 第2章 系统设计 4 2.1需求分析 4 2.1.1可行性分析 4 2.1.2功能需求概述 5 2.1.3 UML用例图 5 2.2学生一卡通的基本组成结构 7 2.2.1天线 7 2.2.2阅读器 7 2.2.3电子标签 11…

自动遍历测试之Monkey工具

某些移动APP业务线多&#xff0c;流程复杂&#xff0c;且产品迭代速度快&#xff0c;在回归测试中涉及到大量用例&#xff0c;工作量大&#xff0c;解决这个问题的一个可行方法是使用自动遍历测试&#xff0c;可以降低用例维护成本&#xff0c;尽可能的自动化覆盖回归业务。 目…

平昌县网上书城系统设计与实现

目 录 第一章 概述 1 1.1 开发背景 1 1.2 开发环境 2 1.3 开发工具 2 1.3.1 MyEclipse 2 1.3.2 Navicat 3 1.3.3 MySQL 3 第二章 需求分析 5 2.1 总体需求 5 2.3 功能需求 6 2.4 性能需求 6 2.5 运行需求 6 2.6 其他需求 7 2.7 可行性分析 7 2.7.1技术可行性 7 2.7.2 经济可行性…

Linux系统介绍:内核、shell及软件包管理

目录Linux内核版本查看系统版本shell常见 shell运行 shell查看Linux系统信息查看系统位数查看内存信息查看CPU信息Linux软件包管理源码编译安装RPMRPM包安装rpm命令其它用法yumDPKGDPKG 命令安装apt查看历史命令historyLinux 文件句柄Linux系统主要包括3层&#xff0c; 硬件&am…

基于MATLAB虚拟仿真的四杆机构运动分析

目 录 1 绪论 (1) 1.1 本文研究的目的意义 (1) 1.2 四杆机构的发展与应用 (1) 1.3 本文研究的主要内容 (2) 2 平面四杆机构运动学分析 (3) 2.1 四杆机构自由度的计算 (3) 2.2 角位移分析 (3) 2.3 角速度分析 (3) 2.4 角加速度分析 (3) 2.5 计算仿真前四杆机构的初始参数值 (4) …

VSCode + Python环境配置

VSCode Python开发环境配置 目录Visual Studio Code 下载安装设置 Python 环境安装code runner插件配置code runnerRun in Terminal其它配置配置VSCode自动保存快捷键Jupyter Notebook插件安装将ipynb文件转换为markdown系列文章Visual Studio Code 下载安装 Visual Studio Co…