【发布时间】:2015-09-26 16:16:02
【问题描述】:
我已向 order 和 order_items 固定装置(已经存在)添加了依赖项,但每次运行 rspec 工作人员测试时都会收到以下错误。
ActiveRecord::StatementInvalid:
Mysql2::Error: Table 'inventory_test10.order_packages' doesn't exist: SHOW FULL FIELDS FROM `order_packages` /*controller:,action:,line:*/
我有一个order,其中有很多order_items 和很多order_packages。 order_items 也属于order_packages。因此,我能够做到:
order.order_items.each do |oi|
put oi.order_package.status
end
最初的问题是没有为 nil 类识别状态,因为从未创建过 order_packages.yml 固定装置。我已经尝试了几个 rake 任务,但我对固定装置、迁移、rake 任务等并不是非常熟悉,而且我不确定我是否不小心导致了运行多个任务的错误。下面是来自博客的 sn-p,它警告多次运行该命令 - http://brandonhilkert.com/blog/using-rails-fixtures-to-seed-a-database/:
rake db:fixtures:load FIXTURES=credit_card_types
一个警告,如果我们多次运行这个命令,它会播种 表多次。它不是幂等的。
我运行的其他任务:
- FIXTURES=订单; rake db:fixtures:load
- rake db:fixtures:dump(不起作用 - 错误)
- rake db:fixtures:drop(不起作用 - 错误)
提前感谢您的任何建议!
【问题讨论】:
-
你在测试环境中运行迁移了吗?
-
我做到了。然后我进入了 test rails 控制台,根本没有找到任何种子数据。
标签: ruby-on-rails testing rspec fixtures rake-task