gpt4 book ai didi

php - 测试期间在 Laravel 中重置数据库中的记录,而不是数据库本身

转载 作者:行者123 更新时间:2023-12-03 22:05:21 25 4
gpt4 key购买 nike

我现在正在测试我的 Laravel 应用程序并面临下一个问题:我的项目是从一个无框架的 PHP 项目迁移而来的,该项目已经拥有自己的数据库,所以我没有对大多数 db 数据进行迁移。在测试期间,我需要刷新我的数据库,但就我现在而言,当我使用 use RefreshDatabase; 时,我的整个数据库正在刷新(因此表也被删除),所以 laravel 假设,我正在迁移我的数据库表时间,我没有做什么。所以问题是:每个新测试是否有可能只刷新记录(我的意思是删除它们),而不是整个数据库?我用谷歌搜索了一下,不幸的是没有找到可能有帮助的东西。提前致谢!

最佳答案

如果您使用的是 Phpunit,则可以使用 DatabaseTransactions 它将添加到数据库中您在测试中添加的内容,然后将其删除。就像特征一样使用它。

如果您不想创建测试数据库,可以使用以下简单方法:

<?php

use Illuminate\Foundation\Testing\DatabaseTransactions;

class ExampleTest extends TestCase
{
use DatabaseTransactions;
...

你可以找到它 here

关于php - 测试期间在 Laravel 中重置数据库中的记录,而不是数据库本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57554771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com