我想测试我的 Laravel 4 应用程序。但是如果不创建数据库,我就无法做到这一点。问题是,我想处理这些事情:
- 用于测试和开发的单独数据库(在内存中也很好)
- 在测试之前进行迁移和种子
- 测试后清空数据库
如何处理?
我想测试我的 Laravel 4 应用程序。但是如果不创建数据库,我就无法做到这一点。问题是,我想处理这些事情:
如何处理?
我认为这将帮助您入门
1.覆盖数据库设置仅用于测试
在 app/config/testing 中创建一个名为 database.php 的新文件,并在其中放置:
return array(
'default' => 'mysql',
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'TEST_DB_NAME', // Create also the Database
'username' => 'USERNAME',
'password' => 'PASSWORD',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
)
)
);
该数据库仅用于测试目的。
2.将此信息也添加到codeception.yml
modules:
config:
Db:
dsn: 'mysql:host=localhost;dbname=TEST_DB_NAME'
user: 'USERNAME'
password: 'PASSWORD'
dump: app/tests/_data/dump.sql
3. 迁移和播种测试数据库
php artisan migrate --seed --env="testing"
4.清理数据库
php artisan migrate:reset --env="testing"