PHPUnit安装(无需PEAR)

时间:2022-10-08 07:07:06

转自:http://www.cnblogs.com/bourneli/articles/2447155.html

 

phpunit源代码下载:http://pear.phpunit.de/

 

如何配置

配置开始前,首先设置一些符号

  • $PHP_HOME PHP安装目录
  • $PHPUNIT_HOME PHPUnit安装目录

 

配置过程如下:

1. 下载phpunit源代码,下载地址:http://pear.phpunit.de/

 

2. 解压PHPUnit到机器任意目录,个人建议解压到$PHP_HOME/lib目录下,这样便于管理所有的第三方php库。假设已经解压后的$PHPUNIT_HOME设为$PHP_HOME/lib/PHPUnit-3.4.10

 

3. 修改$PHPUNIT_HOME /phpunit.php文件,如下所示:

 

PHPUnit安装(无需PEAR)

 

上面的代码中,被修改的地方由红色高亮显示,修改内容主要是去除了if判断语句,直接执行if内部的语句,具体原因见下节分析。

 

4. 将$PHPUNIT_HOME/ phpunit.php文件名称修改为$PHPUNIT_HOME/ phpunit。

 

5. 设置环境变量PATH,将目录$PHPUNIT_HOME/添加到PATH中。比如,可以修改~/.bashrc文件,然后source ~/.bashrc使修改生效,修改后的~/.bashrc文件如下:

PHPUnit安装(无需PEAR)

配置完成,是不是很简单!

 

验证PHPUnit

配置PHPUnit后,可以在任意目录下输入phpunit命令,如下所示:

PHPUnit安装(无需PEAR)

 

出现了上面的提示,说明你的phpunit就配置好了,接下来,可以通过一段示例代码,体验phpunit的功能。StackTest.php如下所示:

<?php

class StackTest extends PHPUnit_Framework_TestCase

{

public function testPushAndPop()

{

$stack = array();

$this->assertEquals(0, count($stack));

array_push($stack, 'foo');

$this->assertEquals('foo', $stack[count($stack)-1]);

$this->assertEquals(1, count($stack));

$this->assertEquals('foo', array_pop($stack));

$this->assertEquals(0, count($stack));

}

}

?>

保存好StackTest.php后,在命令行输入phpunit StackTest.php,就可以运行phpunit,进行单元测试,如下所示:

PHPUnit安装(无需PEAR)

这样,你的第一个PHPUnit单元测试就执行成功了,该测试用的5个断言全部通过。

 

配置分析

这里需要分析一下配置过程中的第3步——修改phpunit代码。此处将if出去,直接执行if内部的语句“set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path());”,此段代码是将$PHPUNIT_HOME目录临时添加到php.ini文件中的“include_path”字段的值中,这样php程序就可以查找到所有phpunit相关的文件。如果不执行第3步的修改,if语句中的条件有可能为false,导致没有设置php.ini的include_path,那么执行phpunit时,php无法找到其他相关文件,就会报告类似“require_once无法找到文件…”的错误。

 

配置过程的第4,5步是为了使得linux系统可以识别phpunit命令,这样就可以在linux的任意目录下执行phpunit命令。