这里用的是 Yii2 的高级项目模板,结构大致如下:
- backend
- common
- environments
- frontend
- gii
- vendor
console去掉了,因为没有需求。安装PHPUnit就不详说了,网上多的很,我是Composer安装的
"require-dev": {
"yiisoft/yii2-debug": "^2.1.0",
"yiisoft/yii2-gii": "^2.1.0",
"yiisoft/yii2-faker": "^2.0.4",
"phpunit/phpunit": "^9.1"
},
Phpstorm里的测试框架配置:
配置了三个应用的测试配置,分别如下:
其中 CommonTest 里的 Runner options 的boostrap.php 内容如下:
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_APP_BASE_PATH') or define('YII_APP_BASE_PATH', __DIR__ . '/../../');
require_once YII_APP_BASE_PATH . '/vendor/autoload.php';
require_once YII_APP_BASE_PATH . '/vendor/yiisoft/yii2/Yii.php';
require_once YII_APP_BASE_PATH . '/common/config/bootstrap.php';
require_once __DIR__ . '/../config/bootstrap.php';
然后在每个应用下建立 tests 文件夹,里面写测试用例
然后就可以使用 Shift + F10 进行单元测试了。
测试用例我随便写的,其实PHPUnit不太适合对Yii2的控制器进行测试,我也是刚刚学这个单元测试,先随便弄弄吧,有问题希望指教指正~