【发布时间】:2019-01-21 15:27:35
【问题描述】:
随着代码的增长,种子文件可能会很快失效。我刚刚遇到了一种情况,即打开的合并请求使所有测试都运行并通过了,但是当我在登台服务器上运行 rails db:seed 时失败,因为种子文件没有该特定模型的所有必需字段。
有没有一种方法可以始终测试种子文件的有效性?
可能相关:
- 我正在使用 gitlab CI 运行 CI 和部署
- rails 版本 - 5.2
- rspec 版本 3
【问题讨论】:
-
您可以编写一个运行
rails db:seed的简单规范,并编写有关返回值的期望,以及可能发生的数据库突变。 -
如何在 rspec 测试中运行
rails db:seed?我知道使用 FactoryBot 但不使用种子文件 -
expect(system("rails db:seed")).to be_truthy- 请参阅 stackoverflow.com/questions/6338908/… 了解有关如何运行它的许多其他选项。 -
还有更多奇特的方法来测试 rake 任务(
"rails db:seed"实际上只是“rake db:seed”的别名)。 robots.thoughtbot.com/test-rake-tasks-like-a-boss
标签: ruby-on-rails ruby rspec