运行spec命令时未初始化的常量Spec :: Rails(NameError)

时间:2011-09-22 11:41:59

标签: rspec

尝试在模型测试上运行spec命令时出现以下错误。

命令是:

C:\Rspec Test\spec\models>spec bank_account_spec.rb

错误是:

  

C:/jruby-1.5.0/lib/ruby/gems/1.8/gems/rspec-rails-1.3.0/lib/spec/rails/matchers/   ar_be_valid.rb:2:未初始化的常量Spec :: Rails(NameError)           来自c:/jruby-1.5.0/lib/ruby/gems/1.8/gems/rspec-rails-1.3.0/lib/spec/ra   ils / matchers / ar_be_valid.rb:31:in require' from c:/jruby-1.5.0/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31 :in require'           来自C:/ Rspec Test / vendor / rails / activesupport / lib / active_support / depende   ncies.rb:158:in require' from c:/jruby-1.5.0/lib/ruby/gems/1.8/gems/rspec-rails-1.3.0/lib/spec/ra ils/matchers.rb:2 from c:/jruby-1.5.0/lib/ruby/gems/1.8/gems/rspec-rails-1.3.0/lib/spec/ra ils/matchers.rb:31:in要求'           来自c:/jruby-1.5.0/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31   :在require' from C:/Rspec Test/vendor/rails/activesupport/lib/active_support/depende ncies.rb:158:in要求'           来自c:/jruby-1.5.0/lib/ruby/gems/1.8/gems/rspec-rails-1.3.0/lib/spec/ra   ils.rb:15            ...... 13级......           来自C:/jruby-1.5.0/lib/ruby/gems/1.8/gems/rspec-1.3.0/bin/spec:5           来自C:/jruby-1.5.0/lib/ruby/gems/1.8/gems/rspec-1.3.0/bin/spec:22:in l   OAD”           来自c:/jruby-1.5.0/bin/spec:22

我实际上尝试在C:\jruby-1.5.0\bin\spec文件中将版本更改为1.3.0,但会导致相同的错误。

2 个答案:

答案 0 :(得分:0)

此错误表明rspec框架未在执行此代码的环境中加载。

uninitialized constant Spec::Rails (NameError)

Rails 3需要rspec 2。 rspec-rails-2的开发已经转移到github.com/rspec/rspec-rails。

答案 1 :(得分:0)

不确定这是否有帮助,因为这个问题已经很老了,但我刚刚通过谷歌发现它,所以这可能对某人有帮助。

我也使用Spec::Matchers.define声明我的匹配器,在网上找到了一些例子。显然,这已经过时了,一旦我将定义更改为RSpec::Matchers.define(请注意' R' RS'),事情再次正常。

我只是在调试模式下遇到了错误而我没有使用JRuby,但这仍然值得一试,而且无论如何它都更正确。