jeudi 10 août 2017

Model Factories don't run in test setUp() method Laravel 5.1

I am using Laravel 5.1 and I have the following test class where I am using some model factories in the setUp() method to temporarily seed the database.

class PendingUserWithManualStudentDetailsTest extends TestCase
{
    use DatabaseMigrations, WithoutMiddleware;

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

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

        // ... more factories
    }

    // ... some tests
}

When running the test I get the following error:

General error: 1 no such table: student_details

When I move the factory calls into a test method they execute just fine. So I am guessing that the order in which the setUp() and my test methods are called are causing the issue. Is there any way I can fix this?

This is my testcase class:

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;
    }
}



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire