linux phpunit 安装,PHPUnit安装教程

使用PHPUnit的第一步就是安装PHPUnit。

1 准备条件

1.1 PHPUnit版本选择

最新版PHPUnit并不能在所有的PHP环境下使用。

例如,PHPUnit 6.4 不能在PHP 5.4 环境下使用,否则会出错。

对应版本支持如下:

PHPUnit 6.0~6.4:PHP7.0+

PHPUnit 5.0~5.7:PHP5.6+

PHPUnit 4.0~4.8:PHP 5.3.3+

所以,在安装PHPUnit之前,要先确定测试环境的PHP版本,再根据PHP版本选择PHPUnit版本。

假设是PHP5.4就可以用PHPUnit 4的最后版本PHPUnit 4.8。

1.2 PHP扩展

PHPUnit必须扩展:dom、json、pcre、reflection、spl (这些默认已经开启,可以略过)

代码覆盖率需要扩展: Xdebug (2.5.0+) 、tokenizer

生成XML报告需要扩展:xmlwriter

2 composer方式安装(推荐)

在测试目录(一般是tests)下编写composer.json文件,内容:

{

"require-dev": {

"phpunit/phpunit": "~4.8.0",

"phpunit/dbunit": "*",

"codeception/aspect-mock": "*"

}

}

这里我们一键安装了:

PHPUnit

用于数据测试的DBUnit组件

用于测试调用了静态类方法的AspectMock组件

不需要的可以删除对应行。

然后更新composer:

$ composer update

然后把bin目录添加到系统PATH环境变量中,例如我的是:

D:\works\tests\vendor\bin

打开终端执行监测:

$ phpunit --version

PHPUnit x.y.z by Sebastian Bergmann and contributors.

说明安装完成。

3 Phar方式安装

安装 PHPUnit 另外一个简单的方法是下载 PHPUnit 的 PHP 档案包,

它将 PHPUnit 所需要的所有必要组件(包含PHP_Invoker,但不包含DbUnit)捆绑在单个文件中。

3.1 下载地址

各版本下载地址如下:

其他中间版本修改版本号就可以下载了,

比如,要下载PHPUnit 6.0,下载地址的最后改成:phpunit-6.0.phar。

3.2 Linux

Linux系统安装 PHPUnit.phar 完整命令:

$ wget https://phar.phpunit.de/phpunit-6.2.phar

$ chmod +x phpunit-6.2.phar

$ sudo mv phpunit-6.2.phar /usr/local/bin/phpunit

$ phpunit --version

PHPUnit x.y.z by Sebastian Bergmann and contributors.

3.3 Windows

在 Windows 下安装PHPUnit.phar 过程:

为 PHP 的二进制可执行文件建立一个目录,例如C:\bin

将;C:\bin附加到 PATH环境变量中

下载PHPUnit Phar包,保存到C:\bin\phpunit.phar

在C:\bin目录下新建一个名为phpunit.cmd的文件(可由TXT文件改名),内容:

@php "%~dp0phpunit.phar" %*

新开一个命令行窗口,确认一下可以在任意路径下执行 PHPUnit:

C:\Users\username> phpunit --version

PHPUnit x.y.z by Sebastian Bergmann and contributors.

这样便安装完了PHPUnit。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一滴水从高处落下来,会不会砸死人?

全世界只有3.14 % 的人关注了爆炸吧知识有一个相当古老的段子是这么说的:为了涨姿势,我加入一个物理博士群,见到有人问:一滴水从很高的地方落下来,会不会弄死人?群里一下就热闹起来,各种公式&am…

python检验阿姆斯特朗数_python 之九九乘法表,润年,奇偶数,阿姆斯特朗数判断分享...

九九乘法表&#xff1a;for i in range(1, 10):for j in range(1, i 1):print(j, "x", i, "", i * j, end" ")print()i 1while i < 10:j 1while j < i:print(j, "x", i, "", i * j, end" ")j 1print()p…

给ubuntu换个图标主题(icon theme)

2019独角兽企业重金招聘Python工程师标准>>> 对于linux mint&#xff0c; http://linuxmint-art.org/?xcontentmode8325给出了很多icon主题。 安装方法有下面几种&#xff1a; 1、使用PPA 2、将解压后的icon主题目录放到 /usr/share/icons目录下。 3、将解压后的i…

Cisco系列网络设备测试命令大全

1、show命令&#xff1a; 1&#xff09; 全局命令&#xff1a;show version &#xff1b;显示系统硬件和软件版本、DRAM、Flashshow startup-config &#xff1b;显示写入NVRAM中的配置内容show running-config &#xff1b;显示当前运行的配置内容show buffers &#xff1b;详…

贴图程序进展

从2.28号到现在&#xff0c;在休息&#xff0c;在此先整理下之前的情况&#xff0c;对问题和要做的内容进行一下梳理。 首先&#xff0c;把之前的问题稍做下总结&#xff0c;上次提到OpenGL版本这块&#xff0c;我的是1.1版本&#xff0c;所以就只能用顶点数组来实现了&#xf…

unity 坐标系转换_Unity的几种坐标系及相互转换

介绍1.WorldSpace(世界坐标系)当我们向场景中添加物体时&#xff0c;他们都是以世界坐标系的方式的方式显示在场景中的通过transform.position可以得到它在世界中的坐标位置&#xff0c;transform.position(Vector3)可以设置它在世界中的位置(c#不支持单独设置x y z)&#xff1…

get到一个生气后的牵手方式!太可爱了

1 公司新聘的出纳&#xff0c;大家看看尽不尽职&#xff1f;2 柯基&#xff1a;腿长有啥用啊3 男友力爆表的小螃蟹4 一滴水的下落&#xff0c;原来如此有条有理5 内容太过真实6 get到一个生气后的牵手方式7 你们那里的这条街叫什么&#xff1f;你点的每个赞&#xff0c;我都认真…

python flask框架是什么_Flask框架是什么?带你安装运行第一个Flask程序

1 了解框架 Flask作为Web框架&#xff0c;它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的&#xff0c;是为了利用互联网交流工作文档。 1.1 一切从客户端发起请求开始。 所有Flask程序都必须创建一个程序实…

还在做互联网创业梦?醒醒!

阅读本文大概需要7分钟。最近国家在互联网领域动作不少&#xff1a;在线教育K12领域被全面整治、阿里被罚款182亿、巨头的垄断和无序扩张遭遇严格限制&#xff0c;大部分互联网上市公司股价一泻千里。身边不少大佬原本身价几千万的期权股票&#xff0c;一瞬间近乎清零&#xff…

android自动登录不过登陆界面,【教程】Android 记住密码和自动登录界面的实现

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼登录界面源码&#xff1a;LoginActivity.javapublic class LoginActivity extends Activity {private EditText userName, password;private CheckBox rem_pw, auto_login;private Button btn_login;private ImageButton btnQuit;p…

钻石2 D2 让你的diamond2待机2天,甚至2天以上的方法(绝对不是购买电池)

http://bbs.23dopod.com/thread-13801-1-1.html 钻石2 D2 让你的diamond2待机2天&#xff0c;甚至2天以上的方法&#xff08;绝对不是购买电池&#xff09; 钻石2的性能在这里就不说了&#xff0c;坛友自己都知道但是&#xff0c;钻石2的待机性能的确继承了多普达的传统&#x…

把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?

全世界只有3.14 % 的人关注了爆炸吧知识作者丨Max 链接&#xff1a;zhihu.com/question/293021546/answer/487157602把 14 亿中国人民都拉到一个微信群里在技术上能实现吗&#xff1f;先说结论&#xff1a;也许可以实现&#xff0c;但你会什么都看不见。根据 2017 年《微信数据…

python每天定时9点执行_python 定时器每天就执行一次的实现代码

1.实现功能 编写python脚本一直运行&#xff0c;判断当下是否是新的一天&#xff0c;如果是就执行一次任务代码 2.具体实现代码 #-*-coding:utf-8 -*- __author__ Administrator import os,threading,time curTimetime.strftime("%Y-%M-%D",time.localtime())#记录当…

使用C#为.NET Interactive开发自定义扩展

在前面的文章中&#xff0c;我们介绍了如何在.NET Interactive notebook绘制图表和执行SQL。那么&#xff0c;能不能为.NET Interactive开发交互功能呢&#xff1f;今天&#xff0c;我们就来演示如何实现。创建项目新建类库项目Demo1Extension&#xff0c;需要引用Nuget包Micro…

zabbix snmp自定义OID nginx监控实例(55)

为什么80%的码农都做不了架构师&#xff1f;>>> 为什么要自定义OID&#xff1f; 前面的文章我们已经讲过zabbix如何使用snmp监控服务器&#xff0c;但是他有一个很明显的局限性&#xff1a;只能监控定义好的OID项目&#xff0c;假如我们想知道nginx进程是否在运行…

(转帖)对抽象编程:接口和抽象类

[你必须知道的.NET] 第二回&#xff1a;对抽象编程&#xff1a;接口和抽象类-王涛 [你必须知道的.NET] 第二回&#xff1a;对抽象编程&#xff1a;接口和抽象类 Author&#xff1a;王涛 Date&#xff1a;2007-4-12 ©2007 Anytao.com 转贴请注明出处&#xff0c;留此信息。…

mysql从节点参数配置

官网地址&#xff1a;MySQL :: MySQL Replication :: 2.6.3 Replica Server Options and Variables 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. MySQL 复制 / ... / 副本服务器选项和变量 2.6.3 副本服务器…

Windows 7各版本比较

http://windows.microsoft.com/zh-cn/windows7/products/compare家庭普通版 家庭高级版专业版 旗舰版 桌面体验全新的 Windows 任务栏∨∨∨∨实时任务栏缩略图预览∨∨∨∨快速显示桌面∨∨∨∨自定义通知区域图标∨∨∨∨桌面小工具∨∨∨∨半透明玻璃窗口∨∨∨Aero 桌…

实验四 图的遍历算法设计与实现

一、实验名称&#xff1a;图的遍历算法设计与实现 二、实验目的&#xff1a; 1.掌握图的深度优先遍历的算法。 2.掌握图的广度优先遍历的算法。 3.实验章节&#xff1a;算法设计与分析 第四章 三、实验内容。实验问题和程序运行结果 第一部分 广度优先遍历算法 完善下列程序&am…

jpa 定义中间表实体_Spring Data JPA实体详解

1. Spring Data JPA实体概述JPA提供了一种简单高效的方式来管理Java对象(POJO)到关系数据库的映射&#xff0c;此类Java对象称为JPA实体或简称实体。实体通常与底层数据库中的单个关系表相关联&#xff0c;每个实体的实例表示数据库表格中的某一行。2. Spring Data JPA实体管理…