rake spec不使用rails环境

lya*_*ard 6 ruby rake rspec ruby-on-rails

我试图在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 spec来启动rspec.

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

小智 6

你需要确实包括spec_helper.rb你写的每个spec文件....

您可以通过以下方式运行单个规格:

$ spec specs/models/person_spec.rb
Run Code Online (Sandbox Code Playgroud)

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