У меня есть следующий тестовый класс
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\DatabaseTransactions; class ProvidersTest extends TestCase { use DatabaseMigrations; /** * @var \Orka\Entities\User */ protected $user; public function setUp() { parent::setUp(); $user = factory(\Orka\Entities\User::class)->create(); $this->user = $user; } /** * @test */ public function it_shows_no_connected_providers() { $this ->actingAs($this->user) ->visit('/teams/1/providers') ->see('You have not connected a provider yet.') ; } }
При запуске этого кода я получаю сообщение об ошибке, указывающее на то, что таблицы не существуют, единственный способ заставить его работать – это вызов $this->runDatabaseMigrations();
в setUp()
, но насколько я знаю, мне не нужно это делать. У меня похожие проблемы с DatabaseTransactions.
Laravel 5.1.23
Любые идеи о том, почему это происходит, поскольку документы говорят, что это должно запускаться автоматически.
У меня такая же проблема. Я закончил путь использования shell_exec () для удаления, создания и повторной загрузки базы данных с помощью файла mysql.dump. Это довольно неряшливая альтернатива, но единственная вещь, которая, кажется, работает прямо сейчас, не написав кучу SQL-скриптов, чтобы поместить все.
Laravel 5 Перемещение базы данных для тестирования модулей между испытаниями
Это должно быть исправлено: https://laracasts.com/discuss/channels/testing/databasetransactions-databasemigrations-have-no-effect?page=0#reply-112955 (см. Последний комментарий Джеффри)