`RefreshDatabase` удаляет все таблицы - PullRequest
0 голосов
/ 10 июля 2019

В тестовом классе Laravel / PHPunit, который я добавил use RefreshDatabase к классу, я понимаю, что это должно сделать так, чтобы изменения в базе данных во время теста были отменены после его завершения.

Но всякий раз, когда я запускаю тесты в классе, все таблицы в базе данных удаляются, и тесты не выполняются (потому что таблицы не существуют!).

Документы предполагают, что восстановление базы данных после теста так же просто, как добавление одной строки, как я сделал, я что-то упустил?

1 Ответ

0 голосов
/ 10 июля 2019

Если вы не хотите стирать и перестраивать базу данных с помощью RefreshDatabase, вы можете просто использовать черту DatabaseTransactions.Это отменит все изменения, сделанные во время тестирования.

<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class ExampleTest extends TestCase
{
    use DatabaseTransactions;

    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...