Laravel - 设置测试数据库

Wiz*_*ard 4 phpunit laravel

使用我的laravel应用程序,我有一堆迁移和db种子数据.在app/config/testing/database.php我已经为测试MySQL数据库.

我使用migratedb:seed命令填充了测试数据库,指定了测试环境.

这很好用,但我想每次运行时调用这些命令phpunit.如果它在setUp中执行,则只需在每次测试时调用它.

我也可以在setUpBeforeClass更好的情况下调用它,但如果我测试10个类,则更长.

当我跑步时,有没有一种方法可以让它完成一次phpunit

Wiz*_*ard 6

现在我已经在tests/TestCase.php中完成了这个

class TestCase extends Illuminate\Foundation\Testing\TestCase {

    public static $setupDatabase = true;

    public function setUp()
    {
        parent::setUp();
        if(self::$setupDatabase)
        {
            $this->setupDatabase();
        }
    }

    public function setupDatabase()
    {
        Artisan::call('migrate');
        Artisan::call('db:seed');
        self::$setupDatabase = false;
    }

    ....
Run Code Online (Sandbox Code Playgroud)

这似乎工作,但感觉不理想,但意味着我可以轻松重新设置数据库,如果我需要重置它进行测试...