Hir*_*oki 6 phpunit laravel laravel-5.5
我一直在教自己如何在Laravel 5.5中编写测试用例.
我注意到,当我运行具有DatabaseMigrations
特征的测试类时,运行测试后将删除与测试类相关的所有数据库表.
这是默认发生的吗?我没有在文档中找到任何线索.
任何建议将被认真考虑.
Pri*_*'zi 18
有DatabaseTransactions
和DatabaseMigrations
.
随着DatabaseTransactions
当你运行你的测试,它准备交易,触发测试和执行后滚一切恢复
DatabaseMigrations
触发php artisan migrate
命令,在应用程序被销毁之前,它会回滚所有内容.
也有RefreshDatabase
它排在Laravel 5.5,它种替代DatabaseMigrations
和DatabaseTransactions
.
有了RefreshDatabase
,如果您使用的是内存数据库,它将php artisan migrate
为您运行.如果您不使用内存数据库,它将删除所有表并重新运行php artisan migrate
.
我建议你使用一个内存数据库,可以在你的phpunit.xml
文件的php标签中定义如下.
...
<php>
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
</php>
Run Code Online (Sandbox Code Playgroud)
内存数据库的一些优点如下:
归档时间: |
|
查看次数: |
2505 次 |
最近记录: |