Centos5.4下安装PHPUnit .

分类:CentOS教程 阅读:20225 次

PHPUnit之于PHP正如JUnit之于Java,是PHP程序员用来写单元测试代码的工具。由于上级要求员工写代码时也要写单元测试代码,于是我在网上搜集相关资料,并整理了一套符合自己虚拟机环境的PHPUnit安装方法。

要求:

系统:centos5.4

PHP版本:php5.3.

一、安装Pear

首先要安装最新的pear。安装命令如下:

  1. wgethttp://pear.php.net/go-pear.phar
  2. /usr/local/php5.3/bin/phpgo-pear.phar

wget http://pear.php.net/go-pear.phar /usr/local/php5.3/bin/php go-pear.phar
pear安装成功!如果以上命令执行不成功:

1、用find/-namephp找到php可执行文件所在的位置;

2、可以试着在命令开始加上sudo,或者用suroot切换到root用户。

二、安装phpunit

下面用pear来安装phpunit。下面的安装过程可能会提示没有找到pear,那是因为pear没有加入到环境变量中。我的解决方法是:

1、用find/-namepear找到pear所在的位置

2、输入这条语句exportPATH="$PATH:/usr/local/php5.3/bin/pear"

  1. pearchannel-discoverpear.phpunit.de
  2. pearchannel-discovercomponents.ez.no
  3. pearchannel-discoverpear.symfony-project.com
  4. pearupgrade-all
  5. pearinstallphpunit/PHPUnit

pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear.symfony-project.com pear upgrade-all pear install phpunit/PHPUnit

在安装的过程中可能会出现依赖包,按照提示信息进行安装。

如:yuminstallphp-dom-y等

恭喜!如果一切顺利,证明你已经安装成功了PHPUnit。

三、使用PHPUnit

例子:hello.php

  1. classhello_testextendsPHPUnit_Framework_TestCase
  2. {
  3. publicfunctiontest_equal()
  4. {
  5. $stack=array();
  6. $this->assertEquals(0,123);//判断0和123是否相等
  7. }
  8. }
  9. ?>

<?php class hello_test extends PHPUnit_Framework_TestCase { public function test_equal() { $stack = array(); $this->assertEquals(0,123); //判断0和123是否相等 } } ?>
phpunithello.php看到OK,表示成功,否则……

但是我这边报错没有找到phpunit,当发现不是路径问题时,找到如下解决方法

  1. pearupdate-channels
  2. pearupgrade-all

pear update-channels pear upgrade-all

完了之后安装:

pear install –alldeps phpunit/PHPUnit

结果报错了:

Unknownremotechannel:pear.symfony.com

phpunit/PHPUnitrequirespackage"channel://pear.symfony.com/Yaml"(version>=2.1.0)

Google一下,找到一个有用的解决方案:

1 pear channel-discover pear.symfony.com 2 pear install pear.symfony.com/Yaml

然后再次执行

pear install –alldeps phpunit/PHPUnit

这回成功了

四、总结

在这里我与大家分享了我在自己虚拟机上安装PHPUnit时从失败到成功的过程。失败主要是因为找不到可执行文件缺,或者少某些依赖库;失败也可能是工具与系统的版本有高有低相互不兼容。

前面分享的例子中使用了断言值相等的assertEquals,当然PHPUnit中还自带了不少其它的断言方法,如assertEmptyassertTrue……