При создании записи в 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
В настоящее время я должен повторяться, создавая эту запись в каждом тесте.
Есть идеи, как сделать эту работу?
У меня такая же проблема. Завершено использование черты DatabaseTransactions вместо DatabaseMigrations. Однако этого недостаточно, так как вам все еще нужно запустить миграцию и создать таблицы базы данных. Вы можете сделать это, также переопределив метод setUp основного класса TestCase:
public function setUp()
{
parent::setUp();
$this->artisan('migrate:refresh');
}
Таким образом, вы выполняете откат и перестраиваете все таблицы перед каждым тестом. И ваши тесты оборачиваются транзакциями, которые также откатываются.
Затем вы можете переопределить функцию setUp в ваших отдельных тестовых классах и выполнять работу с БД без ошибок.
Попробуйте добавить \
Befor App
, как это:
$company = new \App\Company();