Zend Franmework: 安装 PHPUnit

url: https://phpunit.de/manual/current/zh_cn/installation.html

需求

PHPUnit 5.1 需要 PHP 5.6,强烈推荐使用最新版本的 PHP。

PHPUnit 需要使用 domjson 扩展,它们通常是默认启用的。

PHPUnit 还需要 pcrereflectionspl 扩展。这些标准扩展默认启用,并且除非修改 PHP 的构建系统和 C 源代码,否则无法禁用它们。

代码覆盖率分析报告功能需要 Xdebug (2.2.1以上)与 tokenizer 扩展。生成 XML 格式的报告需要有 xmlwriter 扩展。

PHP 档案包 (PHAR)

要获取 PHPUnit,最简单的方法是下载 PHPUnit 的 PHP 档案包 (PHAR),它将 PHPUnit 所需要的所有必要组件(以及某些可选组件)捆绑在单个文件中:

要使用 PHP档案包(PHAR)需要有 phar 扩展。

要使用 PHAR 的 --self-update 功能需要有 openssl 扩展。

如果启用了 Suhosin 扩展,需要在 php.ini 中允许执行 PHAR:

suhosin.executor.include.whitelist = phar

注意

要从 https://phar.phpunit.de/ 下载,需要支持 TLS/SNI的客户端,例如 wget 1.14(或更高版本)。

如果要全局安装 PHAR:

$ wget https://phar.phpunit.de/phpunit.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit
PHPUnit x.y.z by Sebastian Bergmann and contributors.
也可以直接使用下载的 PHAR 文件:
$ wget https://phar.phpunit.de/phpunit.phar
$ php phpunit.phar --version
PHPUnit x.y.z by Sebastian Bergmann and contributors.

Windows

整体上说,在 Windows 下安装 PHAR 和手工在 Windows 下安装 Composer 是一样的过程:

  1. 为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin
  2. ;C:\bin 附加到 PATH 环境变量中(相关帮助
  3. 下载 https://phar.phpunit.de/phpunit.phar 并将文件保存到 C:\bin\phpunit.phar
  4. 打开命令行(例如,按 Windows+R » 输入 cmd » ENTER)
  5. 建立外包覆批处理脚本(最后得到 C:\bin\phpunit.cmd):
  6. 1 C:\Users\username> cd C:\bin
    2 C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
    3 C:\bin> exit
  7. 新开一个命令行窗口,确认一下可以在任意路径下执行 PHPUnit:
    C:\Users\username> phpunit --version
    PHPUnit x.y.z by Sebastian Bergmann and contributors.

对于 Cygwin 或 MingW32 (例如 TortoiseGit) shell 环境,可以跳过第五步。 取而代之的是,把文件保存为 phpunit (没有 .phar 扩展名),然后用 chmod 775 phpunit 将其设为可执行。

校验 PHPUnit PHAR 发行包

由 PHPUnit 项目分发的所有官方代码发行包都由发行包管理器进行签名。在 phar.phpunit.de 上有 PGP 签名和 SHA1 散列值可用于校验。

下面的例子详细说明了如何对发行包进行校验。首先下载 phpunit.phar 和与之对应的单独 PGP 签名 phpunit.phar.asc

wget https://phar.phpunit.de/phpunit.phar
wget https://phar.phpunit.de/phpunit.phar.asc

用单独的签名(phpunit.phar)对 PHPUnit 的 PHP 档案包(phpunit.phar.asc)进行校验:

gpg phpunit.phar.asc
gpg: Signature made Sat 19 Jul 2014 01:28:02 PM CEST using RSA key ID 6372C20A
gpg: Can‘t check signature: public key not found

在本地系统中没有发行包管理器的公钥(6372C20A)。为了能进行校验,必须从某个密钥服务器上取得发行包管理器的公钥。其中一个服务器是 pgp.uni-mainz.de。所有密钥服务器是链接在一起的,因此连接到任一密钥服务器都可以。

gpg --keyserver pgp.uni-mainz.de --recv-keys 0x4AA394086372C20A
gpg: requesting key 6372C20A from hkp server pgp.uni-mainz.de
gpg: key 6372C20A: public key "Sebastian Bergmann <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

现在已经取得了条目名称为"Sebastian Bergmann <[email protected]>"的公钥。不过无法检验这个密钥确实是由名叫 Sebastian Bergmann 的人创建的。但是可以先试着校验发行包的签名:

gpg phpunit.phar.asc
gpg: Signature made Sat 19 Jul 2014 01:28:02 PM CEST using RSA key ID 6372C20A
gpg: Good signature from "Sebastian Bergmann <sb@sebastian-bergmann.de>"
gpg:                 aka "Sebastian Bergmann <sebastian@php.net>"
gpg:                 aka "Sebastian Bergmann <sebastian@thephp.cc>"
gpg:                 aka "Sebastian Bergmann <sebastian@phpunit.de>"
gpg:                 aka "Sebastian Bergmann <sebastian.bergmann@thephp.cc>"
gpg:                 aka "[jpeg image of size 40635]"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D840 6D0D 8294 7747 2937  7831 4AA3 9408 6372 C20A
 

此时,签名已经没问题了,但是这个公钥还不能信任。签名没问题意味着文件未被篡改。可是由于公钥加密系统的性质,还需要再校验密钥 6372C20A 确实是由真正的 Sebastian Bergmann 创建的。

任 何攻击者都能创建公钥并将其上传到公钥服务器。他们可以建立一个带恶意的发行包,并用这个假密钥进行签名。这样,如果尝试对这个损坏了的发行包进行签名校 验,由于密钥是“真”密钥,校验将成功完成。因此,需要对这个密钥的真实性进行校验。如何对公钥的真实性进行校验已经超出了本文档的范畴。

有个比较谨慎的做法是创建一个脚本来管理 PHPUnit 的安装,在运行测试套件之前校验 GnuPG 签名。例如:

 1 #!/usr/bin/env bash
 2 clean=1 # 是否在测试完成之后删除 phpunit.phar ?
 3 aftercmd="php phpunit.phar --bootstrap bootstrap.php src/tests"
 4 gpg --fingerprint D8406D0D82947747293778314AA394086372C20A
 5 if [ $? -ne 0 ]; then
 6     echo -e "\033[33mDownloading PGP Public Key...\033[0m"
 7     gpg --recv-keys D8406D0D82947747293778314AA394086372C20A
 8     # Sebastian Bergmann <[email protected]>
 9     gpg --fingerprint D8406D0D82947747293778314AA394086372C20A
10     if [ $? -ne 0 ]; then
11         echo -e "\033[31mCould not download PGP public key for verification\033[0m"
12         exit
13     fi
14 fi
15
16 if [ "$clean" -eq 1 ]; then
17     # 如果存在就清理掉
18     if [ -f phpunit.phar ]; then
19         rm -f phpunit.phar
20     fi
21     if [ -f phpunit.phar.asc ]; then
22         rm -f phpunit.phar.asc
23     fi
24 fi
25
26 # 抓取最新的发行版和对应的签名
27 if [ ! -f phpunit.phar ]; then
28     wget https://phar.phpunit.de/phpunit.phar
29 fi
30 if [ ! -f phpunit.phar.asc ]; then
31     wget https://phar.phpunit.de/phpunit.phar.asc
32 fi
33
34 # 在运行前先校验
35 gpg --verify phpunit.phar.asc phpunit.phar
36 if [ $? -eq 0 ]; then
37     echo
38     echo -e "\033[33mBegin Unit Testing\033[0m"
39     # 运行测试套件
40     `$after_cmd`
41     # 清理
42     if [ "$clean" -eq 1 ]; then
43         echo -e "\033[32mCleaning Up!\033[0m"
44         rm -f phpunit.phar
45         rm -f phpunit.phar.asc
46     fi
47 else
48     echo
49     chmod -x phpunit.phar
50     mv phpunit.phar /tmp/bad-phpunit.phar
51     mv phpunit.phar.asc /tmp/bad-phpunit.phar.asc
52     echo -e "\033[31mSignature did not match! PHPUnit has been moved to /tmp/bad-phpunit.phar\033[0m"
53     exit 1
54 fi

Composer

如果用 Composer 来管理项目的依赖关系,只要在项目的 composer.json 文件中简单地加上对 phpunit/phpunit 的依赖关系即可。下面是一个最小化的 composer.json 文件的例子,只定义了一个对 PHPUnit 5.1 的开发时(development-time)依赖:

{
    "require-dev": {
        "phpunit/phpunit": "5.1.*"
    }
}

要通过 Composer 完成系统级的安装,可以运行:

composer global require "phpunit/phpunit=5.1.*"

请确保 path 变量中包含有 ~/.composer/vendor/bin/

可选的组件包

有以下可选组件包可用:

PHP_Invoker

一个工具类,可以用带有超时限制的方式调用可调用内容。当需要在严格模式下保证测试的超时限制时,这个组件包是必须的。

PHPUnit 的 PHAR 分发中已经包含了此组件包。若要通过 Composer 安装此组件包,添加如下 "require-dev" 依赖项:

"phpunit/php-invoker": "*"
DbUnit

移植到 PHP/PHPUnit 上的 DbUnit 用于提供对数据库交互测试的支持。

PHPUnit 的 PHAR 分发中已经包含了此组件包。若要通过 Composer 安装此组件包,添加如下 "require-dev" 依赖项:

"phpunit/dbunit": ">=1.2"
时间: 2024-08-10 10:56:29

Zend Franmework: 安装 PHPUnit的相关文章

Zend Studio安装和使用

Zend Studio安装和使用 工欲利其事必先利其器 1.ZendStudio 下载 下载地址:http://www.zend.com.安装就和典型的windows软件安装一样.直接next,next.filish 即可. 注意:文件的目录和Apache放在同一个目录就可以了. 2.简单介绍 zend studio 是一款eclipse风格的php开发ide快捷键和eclipse快捷键基本相同. 了解更多快捷键:http://www.cnblogs.com/cbread/p/4289670.h

zend studio安装与配置

zend studio 1.安装zend studio 破解 2.安装汉化包 选择Help菜单->Install New Software...在Work with框中复制此地址:http://archive.eclipse.org/technology/babel/update-site/R0.10.1/juno/ 3.修改编码集 window菜单->Preferences->General->Workspace,在界面当中找到“Text file encoding 4.zend

linux centos6.5 php5.6 安装PHPUnit 5.2.9 (转)

转自:http://blog.csdn.net/shancunxiaoyazhi/article/details/50765293 操作系统版本:CentOS6.5 PHP版本:5.6 下载phpunit :https://phpunit.de/ 安装phpunit步骤: wget https://phar.phpunit.de/phpunit.phar chmod +x phpunit.phar sudo mv phpunit.phar /usr/local/bin/phpunit [sql]

Zend Server安装后首次运行就出现Internal Server Error的解决

无论是使用哪个版本的Zend Server来搭建PHP服务器,首次运行都会出现Internal Server Error的错误,对很多新手而言,每当看到这种错误时,那一刻内心绝对都是崩溃的.然而,这个错误并没有想象中难解决,可以说是简单得不能再简单了. 作为一个开发者,遇到错误不要紧,找到解决方案也不难,但是我们是程序猿,我们要知其所以然,因此出现本次错误,立刻去查看错误日志,打开 \Apache2\logs\error.log ,发现有这么一行记录: [error] Zend Enabler

Zend Server安装后首次运行就出现Internal Server Error的解决(转)

新近学习php,结果装了Zend Server上来就报错,网上找到了解决方法,照着做果然可行,转之. 刚才安装了Zend Server,安装后首次运行就爆出了一个Internal Server Error,于是看了看日志 \Apache2\logs\error.log 中有这么一行记录: ? 1 [Sun May 25 22:57:04 2014] [error] Zend Enabler cannot load because of a problem in its configuration

用pear来安装phpunit

安装pear 的命令如下: $ wget http://pear.php.net/go-pear.phar $ php go-pear.phar pear 安装成功! 下面用 pear 来安装phpunit pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear.symfony-project.com pear upgrade-all pear

Zend Server 安装与配置图文教程

Zend Server是一款专业的PHP Web开发应用服务器,一些初次接触并使用此程序的朋友可能不太了解安装方法,本文为您提供了Zend Server 安装与配置图文教程,欢迎大家阅读,并提出自己的意见和问题,我们一起来学习! 首先要下载ZendServer软件 下载地址:http://www.zend.com/en/products/server/downloads 运行安装文件(ZendServer-CE-php-5.3.2-5.0.1-Windows_x86.exe)开始安装,选项请参照

zend studio12安装,汉化以及破解方法

安装包和汉化包都在百度云盘的"zend studio12 "文件里面,需要的自己去下载安装 下载地址和密码:链接: http://pan.baidu.com/s/1bn0K9zh 密码: p3rt 1:点击安装包,根据实际需要一直下一步知道安装完成 2:汉化 可查看教程 http://jingyan.baidu.com/article/020278118b38ed1bcc9ce59d.html?qq-pf-to=pcqq.discussion (1) 点击上面导航栏中的最后边的Help

php: zend server 安装及相关配置

运行安装文件(ZendServer-CE-php-5.3.2-5.0.1-Windows_x86.exe)开始安装,选项请参照我的选择. 这里不做改动,维持默认选择即可 点击Browse按钮更改安装目录,比如这里设置的是D盘 更改Web Server Port为85 以避免跟IIS冲突,如果你没有IIS那么没有关系的. 错误1: 安装完成因Zend Server存在配置文件编码的错误,需要手工做更改. 用记事本打开D:\Program Files\Zend\ZendServer\etc\Zend