1

我想测试我的 Laravel 4 应用程序。但是如果不创建数据库,我就无法做到这一点。问题是,我想处理这些事情:

  • 用于测试和开发的单独数据库(在内存中也很好)
  • 在测试之前进行迁移和种子
  • 测试后清空数据库

如何处理?

4

1 回答 1

6

我认为这将帮助您入门

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"
于 2014-03-14T14:43:59.240 回答