Rails 3.0.3 黄瓜测试中不存在关系“delayed_jobs”

Posted

技术标签:

【中文标题】Rails 3.0.3 黄瓜测试中不存在关系“delayed_jobs”【英文标题】:relation "delayed_jobs" does not exist in Rails 3.0.3 cucumber tests 【发布时间】:2010-11-21 21:10:26 【问题描述】:

我正在运行带有 Postgres 9.0.1 和延迟作业 2.1.1 的 Rails 3.0.3。我在 after_save 回调上为 Solr 重新索引配置了延迟作业,这在开发中效果很好。在为相关模型的 create 方法运行黄瓜测试时,我得到:

(::) 失败的步骤 (::)

PGError:错误:关系“delayed_jobs”不存在 第 4 行:在哪里 a.attrelid = '"delayed_jobs"'::regclass ^ : 选择 a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d 在 a.attrelid = d.adrelid 和 a.attnum = d.adnum WHERE a.attrelid = '"delayed_jobs"'::regclass AND a.attnum > 0 AND NOT a.attisdropped 由 a.attnum 订购 (ActiveRecord::StatementInvalid) ./app/controllers/admin/items_controller.rb:11:in create' ./features/step_definitions/web_steps.rb:29 ./features/step_definitions/web_steps.rb:14:inwith_scope' ./features/step_definitions/web_steps.rb:28:in /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/' features/admin/item_create.feature:20:in然后我按“创建”'

有什么想法吗? 谢谢

【问题讨论】:

遇到同样的错误,你是怎么解决的?任何帮助表示赞赏。 【参考方案1】:

即你应该运行rake db:test:clone

【讨论】:

【参考方案2】:

可能您还没有在测试数据库上运行迁移。

【讨论】:

为什么这不会自动发生?【参考方案3】:

请使用

rake db:migrate:up VERSION=20080906120000 RAILS_ENV=test

【讨论】:

以上是关于Rails 3.0.3 黄瓜测试中不存在关系“delayed_jobs”的主要内容,如果未能解决你的问题,请参考以下文章

硒、水豚和黄瓜测试拖放重新排序

Ruby on Rails。捆绑器。黄瓜。耙中止!命令失败,状态为 (1)

如何在黄瓜rails中将mysql转换为psql

rails 测试在 gitlab 管道中不起作用

Rails 6 的资产管道中不存在资产“application.js”

Rails + Cucumber/Capybara:如何在测试中设置/检索 cookie?