2017-08-29 106 views
0

DatabaseTransactions在Laravel测试中,特质似乎比DatabaseMigrations特性更快。这很正常,因为每次测试DatabaseMigrations都会再次运行所有迁移过程(+回滚),并且DatabaseTransactions只会取消最后一次事务。那么选择DatabaseTransactions特质似乎是明智的。使用Laravel进行测试:DatabaseTransactions或DatabaseMigrations

Still,DatabaseMigrations确实存在。所以,使用它有没有什么好处(而不是使用DatabaseTransactions)?

回答

3

有可能一些优点和缺点的,但对我来说DatabaseMigrations的两个主要好处是:

1)你并不需要维持一个测试数据库。如果您使用的是DatabaseTransactions,则需要确保您的测试数据库模式是最新的数据库模式。不难做到,只需要追踪一些额外的东西。

2)使用DatabaseMigrations,您可以使用内存中的SQLite数据库进行测试,它比MySQL或Postgres更快,更轻量。

总的来说,我不认为有正确或错误的答案,但我认为这只是归结为偏好。

+0

非常感谢!+1 –

相关问题