我正在尝试在rails项目中使用rspec,我刚刚升级到rails 2.3.2。我在应用程序中安装了rspec 1.2.6和rspec-rails 1.2.6作为插件。
我的问题是规格无法访问我的应用类或任何rails标准库。
首先,我必须使用RAILS_ROOT的完整路径指定我想要测试的模型类,但是现在当它加载类时我得到以下内容
/app/models/person.rb:1: uninitialized constant ActiveRecord (NameError) from ./spec/models/person_spec.rb:1:in `require' from ./spec/models/person_spec.rb:1 from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load' from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load_files' from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `each' from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `load_files' from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/options.rb:99:in `run_examples' from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/command_line.rb:9:in `run' from /Users/law/Projects/roster/vendor/plugins/rspec/bin/spec:4 rake aborted!
我通过从应用程序的根目录调用rake规范来启动rspec。
关于在这种情况下可能缺少什么的任何想法?
答案 0 :(得分:6)
你确实需要在你编写的每个spec文件中包含spec_helper.rb
....
您可以通过以下方式运行各个规范:
$ spec specs/models/person_spec.rb
而不是始终运行整个规范套件
答案 1 :(得分:0)
我没有使用规范,所以这可能无法解决您的问题,但如果您正在编写自己的rake任务并需要rails环境,那么您必须要求它。
task(:task_name => :environment) do
# Task Implementation Here
end