错误:在Laravel Test Set()上创建记录时找不到基表或视图


Error: Base table or view not found when Creating Records on 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

我在TestCase中使用use DatabaseMigrations;。迁移可能在testCase启动之前运行,因此当运行`setUpz时,还没有创建表。

使用Laravel 5.1

目前,我必须通过在每次测试中创建这个记录来重复我自己。

有什么办法让它发挥作用吗?

我也遇到了同样的问题。最终使用了DatabaseTransactions特征而不是DatabaseMigrations。但是这还不够,因为您仍然需要运行迁移并创建数据库表。您还可以通过覆盖主TestCase类上的setUp方法来实现这一点:

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

通过这种方式,您可以在每次测试之前回滚并重新生成所有表。并且您的测试被封装在事务中,这些事务也被回滚。

然后,您可以覆盖各个测试类上的setUp函数,并在没有错误的情况下完成DB工作。

尝试在App之前添加一个',如下所示:

$company = new 'App'Company();