6

我正在尝试在我刚刚升级到 rails 2.3.2 的 rails 项目中使用 rspec。我已经在应用程序中安装了 rspec 1.2.6 和 rspec-rails 1.2.6 作为插件。

我的问题是规范无法访问我的应用程序类或任何 rails 标准库。

首先,我必须使用 RAILS_ROOT 的完整路径指定要测试的模型类,但现在加载类时,我得到以下信息

/app/models/person.rb:1: 未初始化的常量 ActiveRecord (NameError)
        来自 ./spec/models/person_spec.rb:1:in `require'
    来自 ./spec/models/person_spec.rb:1
    来自 /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load'
    来自 /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load_files'
    来自 /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `each'
    来自 /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `load_files'
    来自 /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/options.rb:99:in `run_examples'
    来自 /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/command_line.rb:9:in `run'
    来自 /Users/law/Projects/roster/vendor/plugins/rspec/bin/spec:4
耙中止!

我通过从应用程序的根目录调用 rake spec 来启动 rspec。

关于在这种情况下可能缺少什么的任何想法?

4

2 回答 2

6

您确实需要spec_helper.rb在您编写的每个规范文件中包含...

您可以通过这种方式运行单个规范:

$ spec specs/models/person_spec.rb

而不是总是运行整个规范套件

于 2009-05-30T19:08:12.007 回答
0

我没有使用规范,所以这可能无法解决您的问题,但是如果您正在编写自己的 rake 任务并需要您的 rails 环境,则必须提出要求。

task(:task_name => :environment) do
    # Task Implementation Here
end
于 2009-05-24T15:32:24.653 回答