【发布时间】:2014-06-26 18:03:15
【问题描述】:
我最近不得不将一个项目从 rails 4.0 迁移到 rails 4.1,在此过程中,我还将 RSpec 更新为 RSpec (3.0.0)。
该项目之前在 Capybara 测试的某些功能规范中具有以下内容:
需要'spec_helper'需要'support/integration_helpers.rb'
需要'support/admin_support/admin_user_creation_helpers.rb'包括 BuildDefaults
include BuildDefaults 引用模块spec/support/build_defaults.rb 并具有各种帮助方法以确保已正确填充数据库。由于某种原因,它现在已经停止工作并给出以下错误(和堆栈跟踪):
path_to/spec/features/admin_features/admin_login_out_spec.rb:4:in
<top (required)>': uninitialized constant BuildDefaults (NameError) from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:inblock in load_spec_files' 来自 /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:ineach' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:inload_spec_files' 来自 /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:97:insetup' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:85:inrun' 来自 /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:70:inrun' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:38:ininvoke' 来自 /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/exe/rspec:4:in<top (required)>' from /Users/u_name/Documents/rails/work/c_central_4.1.1/gemset_name/bin/rspec:7:in' 来自 /Users/u_name/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /Users/u_name/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:inrequire' 来自 -e:1:in `'
有人知道为什么会这样吗?
我将非常感谢您对此事的任何帮助。
我查看了其他各种标题与此类似的 SO 问题,但似乎没有一个是相关的。
旁注 1
值得注意的是,我已经从我的测试环境中删除了 Spork,因为它由于某些原因不能很好地运行,而是将项目配置为使用 Spring。虽然我认为这与问题无关,但我确实必须完全重建测试环境(例如运行 rails g rspec:install),然后使用 Transpec 更新 Rspec 语法。
【问题讨论】:
标签: ruby-on-rails-4 rspec capybara guard rspec3