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 次 |
| 最近记录: |