如何通过迁移使用Codeception在Laravel 4中正确填充DB,而不是使用dump

时间:2014-03-14 13:01:01

标签: php laravel-4 codeception

我想测试我的Laravel 4应用程序。但是,如果不创建数据库,我就无法做到。问题是,我想要解决这些问题:

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

如何处理?

1 个答案:

答案 0 :(得分: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"