Как можно вызвать php artisan doctrine: schema: update до начала тестирования?PHPUnit - PullRequest
1 голос
/ 21 сентября 2019

Я хотел бы протестировать свой проект с использованием PHPUnit.Мой проект построен на Laravel и Doctrine.Для тестирования я использую базу данных sqlite :memory:.Поскольку это база данных памяти, я не могу сгенерировать таблицы из своих сущностей перед тестированием, и мне приходится вызывать php artisan doctrine:schema:update при запуске phpunit.

Я пытался добавить черту RefreshDatabase ккласс, но все равно не работает:

namespace Tests\Unit\Example;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

use EntityManager;

class MyExampleTest extends TestCase
{

    use RefreshDatabase;

    // ...

}

Я получаю эту ошибку:

General error: 1 no such table: users

1 Ответ

0 голосов
/ 21 сентября 2019

Если вы хотите запускать миграцию перед каждым тестом, вы можете использовать черту Illuminate\Foundation\Testing\RefreshDatabase, это настроит таблицы базы данных из ваших миграций и очистит все перед запуском теста.

, чтобы использовать его, включите класс и добавьте use RefreshDatabase к вашему тестовому классу.

вот ссылка на документацию.https://laravel.com/docs/5.8/database-testing#resetting-the-database-after-each-test

...