前言
本測試用例只針對yii2 basic框架而寫,若要支持其他框架,請自行查看phpcodeception指導(需要翻牆)http://codeception.com/
yii2 basic默認已經安裝支持了codeception,因此無需再安裝codeception。
初始化
將路徑切換到工程根目錄下
windows下:
php vendor/codeception/codeception/codecept bootstrap
linux下:
php vendor/bin/codecept bootstrap
一般是在window下編碼,為了不重復說命令,統一使用windows下的,對於linux下的,將vendor/codeception/codeception/codecept改成vendor/bin/codecept即可。
實際上在windows中的命令也可以直接在linux中使用
事實上,yii2 basic已經默認做了這一步,因此可以省略這一步。具體的查看是:在工程根目錄下是否有codeception.yml文件及tests目錄
配置
將下面的兩行代碼放置在config/web.php中
defined('YII_ENV_DEV') or define('YII_ENV_DEV', 'dev');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
修改codeception.yml中的數據庫連接配置
在unit.suite.yml中啟用yii2模塊
單元測試
php vendor/codeception/codeception/codecept generate:test unit business
其中business是為單元測試起的名字,可以根據實際要求改成任意內容。
這個命令會在tests目錄下自動生成businessTest.php測試腳本,之后在這個腳本中編寫測試代碼即可
codeception的單元測試完全兼容phpunit編寫的測試案例
運行測試
運行整個測試
php vendor/codeception/codeception/codecept run
運行所有的單元測試
php vendor/codeception/codeception/codecept run unit
運行某個單元測試
php vendor/codeception/codeception/codecept run unit businessTest.php
或者
php vendor/codeception/codeception/codecept run tests/unit/businessTest.php
運行某個單元測試里的某個測試用例
php vendor/codeception/codeception/codecept run tests/unit/businessTest.php:testMe