作者:喜欢在他耳边唱歌 | 来源:互联网 | 2022-12-30 14:52
我一直在教自己如何在Laravel 5.5中编写测试用例.
我注意到,当我运行具有DatabaseMigrations
特征的测试类时,运行测试后将删除与测试类相关的所有数据库表.
这是默认发生的吗?我没有在文档中找到任何线索.
任何建议将被认真考虑.
1> Prince Lione..:
有DatabaseTransactions
和DatabaseMigrations
.
随着DatabaseTransactions
当你运行你的测试,它准备交易,触发测试和执行后滚一切恢复
DatabaseMigrations
触发php artisan migrate
命令,在应用程序被销毁之前,它会回滚所有内容.
也有RefreshDatabase
它排在Laravel 5.5,它种替代DatabaseMigrations
和DatabaseTransactions
.
有了RefreshDatabase
,如果您使用的是内存数据库,它将php artisan migrate
为您运行.如果您不使用内存数据库,它将删除所有表并重新运行php artisan migrate
.
我建议你使用一个内存数据库,可以在你的phpunit.xml
文件的php标签中定义如下.
...
内存数据库的一些优点如下:
运行真的很快
不会影响您的实际数据库,因为所有内容都发生在内存中