尝试在模型测试上运行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:inrequire' 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,但会导致相同的错误。
答案 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,但这仍然值得一试,而且无论如何它都更正确。