Model Factories不在测试setUp()方法Laravel 5.1中运行

时间:2017-08-10 08:25:00

标签: php phpunit laravel-5.1

我正在使用Laravel 5.1,我有以下测试类,我在setUp()方法中使用一些模型工厂来暂时为数据库设定种子。

class PendingUserWithManualStudentDetailsTest extends TestCase
{
    use DatabaseMigrations, WithoutMiddleware;

    public function setUp()
    {
        parent::setUp();

        $this->studentDetail = factory(StudentDetail::class)->create();

        // ... more factories
    }

    // ... some tests
}

运行测试时出现以下错误:

General error: 1 no such table: student_details

当我将工厂调用移动到测试方法时,它们执行得很好。所以我猜测调用setUp()和我的测试方法的顺序导致了这个问题。有什么方法可以解决这个问题吗?

这是我的测试用例类:

class TestCase extends Illuminate\Foundation\Testing\TestCase
{
    /**
     * The base URL to use while testing the application.
     *
     * @var string
     */
    protected $baseUrl = 'http://myapp.dev';

    /**
     * Creates the application.
     *
     * @return \Illuminate\Foundation\Application
     */
    public function createApplication()
    {
        $app = require __DIR__.'/../bootstrap/app.php';

        $app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();

        $app->setLocale('en');

        return $app;
    }
}

0 个答案:

没有答案