根据到“数据库测试”文档 https://laravel.com/docs/5.4/database-testing#resetting-the-database-after-each-test我可以在每次测试后重置数据库(第一个选项)。第二个选项是使用事务运行测试。对我来说这似乎是一个更好的方法,但如果我想运行事务,则迁移不会运行。
有什么办法可以运行一次迁移整个测试过程?
换句话说,我想运行迁移,使用事务运行每个测试,然后回滚。我尝试了文档中所说的内容,但我认为缺少一些内容。
今天为此争论了一段时间,结合迁移运行迁移似乎可以解决问题。我的测试快照如下:
<?php
namespace Tests\Browser;
use App\User;
use Tests\DuskTestCase;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class DefaultTest extends DuskTestCase
{
use DatabaseMigrations, DatabaseTransactions;
/**
* A Dusk test example.
*
* @return void
*/
public function test_something()
{
//Add test stuff here
}
}
我在实际测试中有几个工厂,它们似乎按照预期运行了迁移,测试后数据被销毁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)