PHP笔记-在Eclipse中使用PHPUnit进行单元测试

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!

单元测试是保证代码质量不可缺少的手段,熟悉Java的童鞋非常清楚:使用JUnit测试框架,再加上Eclipse集成的JUnit插件,在开发的过程中进行单元测试非常方便和顺手。
PHP也有PHPUnit,Eclipse也推出了PHPEclipse,却没有支持PHPUnit的插件,所以使用起来还得费一番功夫。下面和大家分享在PHPEclipse如何高效地进行单元测试。

一、安装PHPUnit | Install PHPUnit

PHPUnit可以通过pear以及下载安装包进行安装,这里只讲述通过pear进行安装的方法:
在终端执行如下命令:

1
2
3
4
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit

安装完成后,在PHP的bin目录会出现 phpunit, dbunit等脚本。

二、在Eclipse中设置PHPUnit | PHPUnit setting

打开菜单:Run –> External Tools –> External Tools Conrigurations…,然后新建一个Program。如下图:
External Tools Conrigurations

说明:
1)新建一个 Program,命名为 PHPUnit(名称可自定义)。
2)Location 中填写phpunit所在的绝对路径。
3)Working Directory 中填写 ${workspace_loc}。
4)Arguments 中填写${resource_log}。

三、编写和运行单元测试 | Write and run unit test case

1、待测试类HelloUnit的源代码:

1
2
3
4
5
6
7
8
9
10
<?php
class HelloUnit
{
public function add($a, $b)
{
return $a + $b;
}
}
?>

2、测试类的源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
require_once 'PHPUnit/Framework/TestCase.php';
require_once dirname(__FILE__) . '/../../object/HelloUnit.php';
class ReflectionUtilsTest extends PHPUNIT_Framework_TestCase
{
function testAdd()
{
$_helloUnit = new HelloUnit();
$this->assertEquals(3, $_helloUnit->add(1, 2));
}
}
?>

3、点击”Run Program”按钮,选中“PHPUNIT”,控制台(Console)的输出结果如下:

PHPUnit 3.5.14 by Sebastian Bergmann.
.
Time: 1 second, Memory: 5.25Mb
OK (1 test, 1 assertion)

参考资料 | References