初试PHP单元测试TDD之安装PHPUnit

  东风吹战鼓擂,一年一度的校招季开始了,最为一名即将踏入社会的搬砖工,自然也闲不下来了。各种总结、恶补、面经在所难免。当遇见敏捷开发时,有点蒙了,这是什么东东,绝对不能吃!既然是一种软件开发的方式,听上去还真不错,作为phper自然也得试试。

  TDD-- Test Driven Development,测试驱动开发,在开发功能代码之前先编写单元测试及单元测试用例。没有接触这之前不容易理解,通常的做法是测试是在功能完成后进行的,测试也是根据功能进行。存在即合理,究竟有何好处,为何能叫敏捷?这个真得试试才知道!

  PHPunit:作为一款轻量级的PHP测试框架,来源于JUnit3,是PHP单元测试比较优秀的框架。其官网 https://phpunit.de 有关于其的详细介绍,有一点不得不说,PHPunit的manual个人觉得做得很好,并提供中文版,翻译还好。安装之前明确一点,在官方文档中已经提及了phpunit扩展功能和需要的php扩展包,就不累述了。最新的stable版本号为5.0,要求PHP版本大于5.6。本文使用Ubuntu4.04,php版本5.5.9,phpunit版本为4.8.8(此版本要求的PHP>5.3.3)。

开始

  官方文档里面有有两种安装方式可选PHAR、 Composer,若开发环境中没有安装Composer依赖管理包,这个在其https://getcomposer.org/  中都有详细的介绍,不过建议你使用 http://www.phpcomposer.com/ 的中国全量镜像,当然也可以选择PHAR方式。不过我是个粗人,本着Linux一切皆文件的理论,那就得使用简单粗暴的方式。(其实是将上面两种方式安装好的phpunit移植到新的系统中,可以解决网络的某些原因)。

  安装使用的文件

  1. PHAR包:  http://7xnano.com1.z0.glb.clouddn.com/phpunit
  2. 源码包:        http://7xnano.com1.z0.glb.clouddn.com/vendor.tar.gz  

第一步:将PHAR包放到系统用户目录中  /usr/local/bin ,这样做的目的是系统全局都可使使用phpunit。两种方法:

  方法一:终端中进入到   /usr/local/bin   执行  $ sudo wget http://7xnano.com1.z0.glb.clouddn.com/phpunit 后为其添加可执行权限  sudo chmod +x phpunit ,后检查其权限,如果所示

然后检查phpunit 是否能成功加载  phpunit -version ,phpunit版本是4.8.8。

  方法二:如果你是桌面版系统,或者你可以通过SSH相关软件连接到你的服务器文件系统,那么简单了,直接将PHAR包下载下来,放到系统用户目录下。前提是你得有权限操作该目录,而且这样做以后也是需要在终端中为其添加执行权限。好吧,其实也够倒腾的。

第二步:建立测试工程(hello world)

  本人在/var/www/PHPunit中完成该程序。

  将源码包 下载到该目录(怎么下载就看你了,地址文章中已经提及),新建文件 indexTest.php 

 1 <?php
 2     require_once 'vendor/autoload.php';
 3 
 4 class IndexTest extends PHPUnit_Framework_TestCase
 5 
 6 {
 7     public function testOne(){
 8         return 1;
 9     }
10     /**
11      * 
12      * @depends testOne
13      */
14     public function testTwo($date){
15 
16         return $date+1;
17     }
18     /**
19      *
20      * @depends testTwo
21      */
22     public function testAll($date){
23         $this->assertEquals(2,$date);
24     }
25 }

  终端中进入到该目录下 /var/www/PHPunit 后执行  phpunit indexTest 如下图所示

OK,安装完成了。

 

posted @ 2015-10-06 19:51  daiyun  阅读(471)  评论(0编辑  收藏  举报
AmazingCounters.com