配置 phpStorm 单元测试
优质
小牛编辑
132浏览
2023-12-01
对于php开发者来说,做单元测试并不是很方便,这也是大部分phper不愿意写单元测试的原因。但是单元测试对提高程序的质量来说,有实在是太重要的了。 有关这一点,我也是在学习java,体验过单元测试的魅力之后才切身体会到的。 那么现在我们就以herosphp为栗子,一起来看看php的单元测试环境如何配置。
首先,毫无疑问,php的单元测试肯定是要依赖phpunit这个工具了。那么我们要先 安装phpunit. 这个比较简单。
wget https://phar.phpunit.de/phpunit.phar #下载phpunit
mv phpunit.phar /usr/local/bin/phpunit #移动到环境路径,方便使用phpunit 命令
使用 phpunit -version 去查看phpunit的版本
配置phpstorm
打开菜单Languages & Frameworks > PHP 配置php的版本,在php开发环境中选择你当前使用的php版本,如果你配置了php的 环境变量的话,一般都可以自动检测出来的。我本机编译的php7.0.8
打开菜单Languages & Frameworks > PHP > PHPUnit, 配置phpunit的phar文件的路径,也就是我们刚刚设置的/usr/local/bin/phpunit
, 还需要配置应用程序的phpunit入口文件,在这里你只需要把www/app/phpunit.php配置进去就好了。
如下图所示:
编写单元测试
配置好环境之后我们就可以开始编写单元测试了。所有单元测试的类都需要继承 PHPUnit_Framework_TestCase
这个基类。 下面请看栗子(/demo/tests/UserServiceTest.php):
namespace demo\tests;
use herosphp\bean\Beans;
class UserServiceTest extends \PHPUnit_Framework_TestCase
{
protected $service;
public function setUp()
{
parent::setUp(); // TODO: Change the
autogenerated stub
$this ->service =
Beans::get("demo.user.service");
}
/**
* @test
*/
public function register() {
$this->service->register();
}
}
只要在方法的注释中加上@test
注解,这个方法就是一个单元测试的方法了。 关于phpunit的使用文档请参考 https://phpunit.de/manual/current/zh_cn/index.html
执行单元测试
- 执行所有方法,点击菜单 Run -> Run UserServiceTest ...
- 执行指定的方法,在对应的方法上点击右键,在弹出的右键菜单中选择"Run UserServiceTest.方法名称"