DatabaseTransactions
特征似乎比DatabaseMigrations
特征更快。这是正常的,因为每次测试DatabaseMigrations
再次运行所有迁移过程(+回滚),而DatabaseTransactions
只是取消最后一次事务。那么选择DatabaseTransactions
特征似乎是明智的。
仍然,DatabaseMigrations
确实存在。那么,使用它有什么好处(而不是使用DatabaseTransactions
)?
答案 0 :(得分:3)
可能存在一些优点和缺点,但对我来说,DatabaseMigrations的两个主要好处是:
1)您不需要维护测试数据库。如果您正在使用DatabaseTransactions,则需要确保您的测试数据库架构与正常的数据库架构保持同步。不难做到,只是需要追踪的额外事情。
2)使用DatabaseMigrations允许您使用内存中的SQLite DB进行测试,这比MySQL或Postgres更快,更轻量。
总的来说,我不认为有正确或错误的答案 - 我认为这只是归结为偏好。