我现在正在测试我的 Laravel 应用程序,并面临下一个问题:我的项目是从无框架 PHP 项目迁移而来的,该项目已经拥有自己的数据库,因此我没有对大多数数据库数据进行迁移。在测试期间我需要刷新我的数据库,但就我现在而言,当我使用use RefreshDatabase;
我的整个数据库正在刷新(因此表也被删除),所以 laravel 假设,我每次都在迁移我的数据库表,但我没有做什么。所以问题是:每个新测试是否可以只刷新记录(我的意思是删除它们),而不是整个数据库?我用谷歌搜索过,不幸的是没有找到可能有帮助的东西。提前致谢!
如果您正在使用Phpunit
您可以使用DatabaseTransactions
它将把您在测试中添加的内容添加到数据库中,然后将其删除。只需将其用作特质即可。
如果您不想创建测试数据库,很简单,如下所示:
<?php
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
{
use DatabaseTransactions;
...
您可以在以下位置找到更多相关信息docs https://laravel.com/docs/5.1/testing#resetting-the-database-after-each-test.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)