我有以下测试类
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
关于为什么会发生这种情况的任何想法,因为文档说它应该自动触发。
答案 0 :(得分:1)
我遇到了同样的问题。我最终走了使用shell_exec()的路线,用mysql.dump文件删除,创建和重新设置数据库。这是一个非常草率的选择,但是现在唯一似乎正在发挥作用的是,没有编写一堆SQL脚本来放入所有内容。
Laravel 5 Reseeding the Database for Unit Testing Between Tests
答案 1 :(得分:1)