【问题标题】:Testing with Laravel: DatabaseTransactions or DatabaseMigrations使用 Laravel 进行测试:DatabaseTransactions 或 DatabaseMigrations
【发布时间】:2017-08-29 13:49:06
【问题描述】:

DatabaseTransactions trait 在 Laravel 测试中似乎比 DatabaseMigrations trait 更快。这很正常,因为对于每个测试DatabaseMigrations 再次运行所有迁移过程(+回滚),而DatabaseTransactions 只是取消最后一个事务。那么选择DatabaseTransactions trait 似乎是明智的。

不过,DatabaseMigrations 确实存在。那么,使用它有什么好处(而不是使用DatabaseTransactions)?

【问题讨论】:

    标签: php laravel unit-testing laravel-5 laravel-5.4


    【解决方案1】:

    可能有许多优点和缺点,但对我而言,DatabaseMigrations 的两个主要优点是:

    1) 您不需要维护测试数据库。如果您使用 DatabaseTransactions,您需要确保您的测试数据库架构与您的正常数据库架构是最新的。做起来并不难,只是需要跟踪一个额外的事情。

    2) 使用 DatabaseMigrations 允许您使用内存中的 SQLite DB 进行测试,这比 MySQL 或 Postgres 更快、更轻量级。

    总的来说,我认为没有正确或错误的答案 - 我认为这取决于偏好。

    【讨论】:

    • 谢谢,太好了,+1
    猜你喜欢
    • 2016-02-08
    • 2018-07-08
    • 2018-03-23
    • 2019-11-17
    • 2017-06-05
    • 2016-06-04
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多