phpstorm中使用phpunit进行单元测试 作者: 灯小笼 时间: 2018-07-23 分类: 开发 PHPUnit 是一个用PHP编程语言开发的开源软件,是一个单元测试框架。PHPUnit由Sebastian Bergmann创建,源于Kent Beck的SUnit,是xUnit家族的框架之一。 单元测试是对单独的代码对象进行测试的过程,比如对函数、类、方法进行测试。单元测试可以使用任意一段已经写好的测试代码,也可以使用一些已经存在的测试框架,比如JUnit、PHPUnit或者Cantata++,单元测试框架提供了一系列共同、有用的功能来帮助人们编写自动化的检测单元,例如检查一个实际的值是否符合我们期望的值的断言。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。 总之一句话,使用 phpunit 进行自动测试,会使你的代码更健壮,减少后期维护的成本,也是一种比较标准的规范,现如今流行的PHP框架都带了单元测试,如Laraval,Symfony,Yii2等,单元测试已经成了标配。 另外,单元测试用例是通过命令操控测试脚本的,而不是通过浏览器访问URL的。 这里以phpstorm为例,说明如何利用phpunit做单元测试。 ## 1 下载php7 安装本地php7.0.x的版本,在mac里边安装比较简单: ```bash brew install php@7.0 ``` 在windows里边,可以在php官网下载安装:https://windows.php.net/download#php-7.0 ## 2 下载phpunit 由于框架在php7.0下使用,因此应该选择对应的phpunit版本。 ```bash wget https://phar.phpunit.de/phpunit-6.phar -O phpunit chmod a+x phpunit ``` 也可以不用下载,在项目中加入composer的依赖,执行composer update即可。 ```bash composer require "phpunit/phpunit:6.5.*" --dev ``` ## 3 配置php 配置php的版本及路径等 ![configure-php.png][1] 如果没有配置过本地的CLI Interpreter,可以点击右侧的“...”配置一下。 ![cli.png][2] ## 4 配置phpunit 在phpstorm的设置里边对phpunit进行相关配置 ![phpunit.png][3] ## 5 配置文件 例子 ```xml ./tests/ ``` 如上,上述文件定义了如下行为: - 执行phpunit前,肯定会加载vendor/autoload.php文件, - 会对tests目录的已Test.php结尾的文件进行测试 - php版本要求在7.0.0以上(包含) ## 6 编写测试用例 接下来可以在tests目录编写测试用例了,一个典型的测试用例如下: ```php decrypt($decrypted); // 断言结果和$original是一致的 $this->assertEquals($original, $result); } ... ``` 接下来就可以在phpstorm里边测试了 ![begin-test.png][4] 测试结果如下: ![test-result.png][5] [1]: https://c.dengxiaolong.com/blog/typecho/configure-php.png-typecho [2]: https://c.dengxiaolong.com/blog/typecho/cli.png-typecho [3]: https://c.dengxiaolong.com/blog/typecho/phpunit.png-typecho [4]: https://c.dengxiaolong.com/blog/typecho/begin-test.png-typecho [5]: https://c.dengxiaolong.com/blog/typecho/test-result.png-typecho [6]: https://dengxiaolong.com/usr/uploads/2018/08/3104066426.png 标签: php, phpstorm, phpunit