热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Laravel5.5:使用DatabaseMigrations进行测试会删除所有表

如何解决《Laravel5.5:使用DatabaseMigrations进行测试会删除所有表》经验,为你挑选了1个好方法。

我一直在教自己如何在Laravel 5.5中编写测试用例.

我注意到,当我运行具有DatabaseMigrations特征的测试类时,运行测试后将删除与测试类相关的所有数据库表.

这是默认发生的吗?我没有在文档中找到任何线索.

任何建议将被认真考虑.



1> Prince Lione..:

DatabaseTransactionsDatabaseMigrations.

随着DatabaseTransactions当你运行你的测试,它准备交易,触发测试和执行后滚一切恢复

DatabaseMigrations触发php artisan migrate命令,在应用程序被销毁之前,它会回滚所有内容.

也有RefreshDatabase它排在Laravel 5.5,它种替代DatabaseMigrationsDatabaseTransactions.

有了RefreshDatabase,如果您使用的是内存数据库,它将php artisan migrate为您运行.如果您不使用内存数据库,它将删除所有表并重新运行php artisan migrate.

我建议你使用一个内存数据库,可以在你的phpunit.xml文件的php标签中定义如下.

...

    
    
    
    
    
    

内存数据库的一些优点如下:

    运行真的很快

    不会影响您的实际数据库,因为所有内容都发生在内存中


推荐阅读
author-avatar
喜欢在他耳边唱歌
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有