Windows 下安装pear,修改php5.x.x目录下的go-pear.bat如下:
@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d phar.require_hash=0 PEAR\go-pear.phar
pause
以下内容于2012-09-07更新
步骤:
到 http://windows.php.net/downloads/releases/archives/ 下载PHP,解压并重命名到为php5.x.x,进入C:\Program Files\PHP5.x.x目录
如果需要扩展,打开php.ini,设置 extension_dir = "ext" , 取消对应扩展的注释
打开cmd,进入C:\Program Files\PHP5.x.x目录,运行go-pear
提示
Are you installing a system-wide PEAR or a local copy? (system|local) [system]
按回车确定
提示
确定无误,则按回车,输入数字则修改对应项。修改后,按回车进行安装。
生成环境变量PEAR_ENV.reg文件,双击导入注册表
此时,输入pear -V 查看版本信息,输入pear list 查看已安装的包
如果pear list查看没有 Image_GraphViz 包和 Log 包,则使用 pear install Log 安装Log,使用 pear install Image_GraphViz
安装 Image_GraphViz 时,如果提示不能包含Structures/Graph/Node.php,则
尝试set查看PHP_PEAR_*相关环境变量是否正确
尝试关闭cmd窗口,再打开,再pear install Image_GraphViz
尝试pear install Stuctures_Graph,再pear install Image_GraphViz
至此,pear list 应有
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= PACKAGE VERSION STATE Archive_Tar 1.3.3 stable Console_Getopt 1.2.3 stable Image_GraphViz 1.3.0 stable Log 1.12.7 stable PEAR 1.9.0 stable Structures_Graph 1.0.2 stable XML_Util 1.2.1 stable
此时,使用 pear upgrade-all 即可升级所有的包。
如果安装成功在php5的安装目录下面会有一个pear.bat文件,这样就可以继续安装PHPUnit了。
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
运行上面命令后,会自动安装PHPUnit,安装完毕后在PHP5的安装目录下会有phpunit.bat这个文件,这样你就有了phpunit的命令行工具,在默认情况下PHP5的安装目录会自动加入到PATH环境变量中。
此时应发现 php 目录下,有phpunit,phpunit.bat两个文件,PEAR目录下有PHPUnit目录。
使用 phpunit --version 有 PHPUnit 3.6.12 by Sebastian Bergmann. 输出,说明安装成功。
安装完闭之后你的php.ini里面应该有include_path=".;C:\Program Files\PHP5.x.x\PEAR"这一行(注意重起apache让配置生效).
否则以后你require_once 'PHPUnit/Framework.php'的时候会引用不到.
修改 C:\Program Files\PHP5.x.x\phpunit.bat里的PHPBIN路径为php.exe(C:\Program Files\PHP5.x.x\php.exe)绝对地址,然后拷贝一个到C:\WINDOWS\system32目录下,这样可以直接用cmd命令运行了,打开dos窗口,转到你的代码目录下,然后运行phpunit 命令即可
到这里准备工作根本完成了,下面运行一个简单的Demo来检验一下效果:
编辑文件ArrayTest.php,放到PHP环境目录
<?php class ArrayTest extends PHPUnit_Framework_TestCase { public function testNewArrayIsEmpty() { // Create the Array fixture. $fixture = Array(); // Assert that the size of the Array fixture is 0. $this->assertEquals(0, sizeof($fixture)); } public function testArrayContainsAnElement() { // Create the Array fixture. $fixture = Array(); // Add an element to the Array fixture. $fixture[] = 'Element'; // Assert that the size of the Array fixture is 1. $this->assertEquals(1, sizeof($fixture)); } } ?>
然后在命令行下运行:phpunit ArrayTest,就可以看到相应的结果了。
不过在命令行下敲字母总是让人不爽的,我们可以让这个过程更有趣一些,以EditPlus编辑器为例:
Tools -> Configure User Tools -> Add Tool
然后设定:
Menu Text : PHPUnit
Command : C:\Program Files\PHP5.x.x\phpunit.bat
Argument : $(FileNameNoExt)
InitialDirecotry : $(FileDir)
搞定了,如果这是你的EditPlus中第一个UserTool的话,那么当你编辑好你的Test类文件后,只要按下Ctrl + 1就可以调出相应的命令行运行界面了。