解决laravel use RefreshDatabase方法重置了本地跟测试数据表问题

最近碰到一个问题:
在跑laravel项目测试时,每次跑完都会把本地数据库跟测试数据库重置了。当时百思不得其解。
明明phpunit.xml也配置了测试环境的测试表,为什么会出这种错误?
一般人都会去读配置,但是往往更简单更直白的却漏了,工具可能没帮我们加载 - -

这真是尴尬又令人无法言语的BUG。阿桔的脸面都毁于此刻了。
如图所示。在phpstorm中配置我们的test frameworks。
选择我们项目中的phpunit.xml,这是我们testing用到的配置。
在这里插入图片描述
可能你会想了解why do this?
阿桔作为开发狗角度简单聊一下。

一般来说,我们在公司进行项目开发时,开发人员会先编写测试用例,进行简单架构测试后再写业务代码。而进行测试时,为了防止影响数据库,会创建一个临时的测试库用于测试环境。这个在phpunit.xml里配置。
这样的话,当我们在test里进行测试时,所有对数据库的操作都会跑进我们配置的测试表里。不会影响到实际的数据库。

但是每次进行数据库测试时,少则一条记录,多则上千条记录,这对数据库来说并不友好,因为很可能数据之间会彼此影响。因此我在测试类中引用了 use RefreshDatabase;
表示每次测试完重置数据库。
它将会将表内清空。

这样的话,每次测试都是独立进行的,你将不用担心前一次的测试数据对后一次的测试有何影响。

大概就是这样拉。
laravel的测试功能强大,但是如果没有实战的话,你根本不会用。
如果感兴趣后续我再出个详细笔记聊聊关于laravel测试的那些事。么么白

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值