由于我们项目涉及到php,因此需要对php代码进行单元测试。经过一番了解,决定用PHPUnit来测试php。PHPUnit花了不少时间摸索如何配置PHPUnit,看官网的文档也是一把泪。但知道怎么配置后,其实还是很简单的。
-
系统:Windows 7
-
PHP版本:PHP 7.0.1
-
服务器工具:upupw
-
PHPUnit版本:PHPUnit 5.7.15
一、配置PHPUnit
首先到PHPUnit官网(点此进入)下载相应的版本。我们使用的是php 7.0,于是选择PHPUnit 5。得到 .phar
文件,并把名字改为 phpunit.phar
。
把该文件放到任意位置。以我自己为例,我把它放到我们项目的目录下,即D:\repository\CourseManagement\mobile_api_test
。
右键 我的电脑 ,选择 属性 。点击左侧的 高级系统设置 。此时弹出 系统属性 ,选择 高级 选项卡,点击右下角的 环境变量 。 在用户变量里面,双击 PATH ,在 变量值 后面添加;D:\repository\CourseManagement\mobile_api_test
(注意最前面的分号,路径填存放phpunit.phar的路径)。配置这个是为了在任意位置都能使用PHPUnit,不配置的话,需要在phpunit.phar的路径下才能使用PHPUnit。
官方文档里有一点没有提到,就是php的环境变量也要设置。比如我的 php.exe
在E:\software\wamp\bin\php\php5.5.12
里,那么也要在 PATH 后面添加;E:\software\wamp\bin\php\php5.5.12
。PS:可能是因为我没有安装PHP的IDE,所以一直没有配置它,偶然之间才想到可能要添加这个环境变量。
按快捷键 Win + R
,输入cmd并回车。进入存放phpunit.phar的路径。输入 echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
并回车。接着输入 phpunit --version
并回车。如果得到输出 PHPUnit x.y.z by Sebastian Bergmann and contributors.
则表示配置好了(如果有误,输入exit
并回车,重新来一遍)。如下图:
二、使用PHPUnit进行测试
使用PhpUnit必须使用类进行测试,我们先新建一个php类,然后运行一下。
1<?php
2class MyTestClass extends PHPUnit_Framework_TestCase
3{
4 /**
5 * Testing the answer to “do you love unit tests?”
6 */
7 public function testDoYouLoveUnitTests()
8 {
9 $love = true;
10 $this->assertTrue($love);
11 }
12}
13?>
将该文件保存为testUnit.php,然后进入到该文件的目录下,运行phpunit testUnit.php
得到如下结果:
D:\UPUPW_AP7.0\htdocs\testUnit>phpunit testUnit.php
PHPUnit 5.7.15 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time: 209 ms, Memory: 10.00MB
OK (1 test, 1 assertion)
参考文章:http://developer.51cto.com/art/201512/499453.htm
http://developer.51cto.com/art/201102/244535.htm