Ошибка: базовая таблица или представление не найдены при создании записей в Laravel Test SetUp ()?

При создании записи в setUp():

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

$company = new App\Company();
$company->company_name = 'MyTest';
$company->save();
}

Я получаю следующую ошибку:

Base table or view not found

я использую use DatabaseMigrations; в моем TestCase, Возможно, что миграции выполняются непосредственно перед запуском testCase, поэтому при запуске `setUpz таблица еще не создана.

С помощью Laravel 5.1

В настоящее время я должен повторяться, создавая эту запись в каждом тесте.

Есть идеи, как сделать эту работу?

0

Решение

У меня такая же проблема. Завершено использование черты DatabaseTransactions вместо DatabaseMigrations. Однако этого недостаточно, так как вам все еще нужно запустить миграцию и создать таблицы базы данных. Вы можете сделать это, также переопределив метод setUp основного класса TestCase:

public function setUp()
{
parent::setUp();
$this->artisan('migrate:refresh');
}

Таким образом, вы выполняете откат и перестраиваете все таблицы перед каждым тестом. И ваши тесты оборачиваются транзакциями, которые также откатываются.

Затем вы можете переопределить функцию setUp в ваших отдельных тестовых классах и выполнять работу с БД без ошибок.

1

Другие решения

Попробуйте добавить \ Befor App, как это:

$company = new \App\Company();
0

По вопросам рекламы [email protected]