在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();