yii2 本身集成了Codeception
测试框架,那么我们就在 yii2 中使用 Codeception 来做测试。yii2 文档这块写的比较简陋,权当做是一个补充介绍。
yii2 框架本身支持两种安装方式,直接下载或者通过 compose 安装,那么我们就先采用直接下载这种方式来做。
Codeception
Codeception 是一个全栈的 PHP 测试:
- Acceptance Tests 验收测试
- Functional Tests 功能测试
- API Testing
- Unit Tests 单元测试
在 yii2 中搭建 Codeception
- 下载
yii2-basic
- 更改 composer 源,直接在项目根路径执行如下命令即可,详见
Packagist 镜像使用方法
composer config repo.packagist composer https://packagist.phpcomposer.com
- 更新当前 yii2 项目中的包依赖,在项目根路径执行如下命令
composer update
- 开始测试吧, 当然你可以把condecept加入到你的path里。
cd basic #进入项目根目录
./vendor/bin/codecept build #将构建测试用例(根据cept生成tester)
./vendor/bin/codecept run #运行测试用例
常见问题
- 报错如下(ubuntu16.04,php7.0)
[Exception] Codeception requires CURL extension installed to make tests run If you are not sure, how to install CURL, please refer to StackOverflo Notice: PHP for Apache/Nginx and CLI can have different php.ini files. Please make sure that your PHP you run from console has CURL enabled.
没有curl,测试时候 curl 使用的是 php 的 cli 模式
可以通过查看 php -m,查看有没有curl模块,然后我执行apt-get install php-curl
, 依旧报错
因为这个把 curl 加载到了web 模式下的 php.ini 中,所以直接找到了 cli模式下的 php.ini 文件,
添加extension=curl.so
到相应位置即可
备注
- 看其它博客写的都有通过 comooser 安装 Codeception,其实没必要了,因为当前下载下来的包都是安装次依赖了的,如果是下载的话就要更新下包依赖。
- 由于 yii2 框架已经整合了 Codeception,所以也不需要运行
..\vendor\bin\codecept bootstrap
初始化命令