Ruby on rails Rspec无法在ubuntu上运行

Ruby on rails Rspec无法在ubuntu上运行,ruby-on-rails,rspec,ubuntu-12.04,rspec-rails,Ruby On Rails,Rspec,Ubuntu 12.04,Rspec Rails,我正在处理一个困扰我很久的问题。由于某些原因,我无法在本地计算机上启动rspec。我尝试了各种方法来安装和运行它,但都不起作用。 我使用bundler在git存储库上运行RubyonRails2.3.5和Ruby1.8.7 首先,我尝试将rspec安装为gem。为此,我在Gemfile中添加了以下条目: group :test do gem 'rspec', '=1.3.0' gem "rspec-rails", "=1.3.2" end ... group :cucumber do

我正在处理一个困扰我很久的问题。由于某些原因,我无法在本地计算机上启动rspec。我尝试了各种方法来安装和运行它,但都不起作用。 我使用bundler在git存储库上运行RubyonRails2.3.5和Ruby1.8.7

首先,我尝试将rspec安装为gem。为此,我在Gemfile中添加了以下条目:

group :test do
  gem 'rspec', '=1.3.0'
  gem "rspec-rails", "=1.3.2"
end
...
group :cucumber do
  gem 'rspec', '=1.3.0'
  gem "rspec-rails", "=1.3.2"  
end
当我和

宝石清单

我要去看看

*** LOCAL GEMS ***
(...)
rspec (1.3.0)
rspec-rails (1.3.2)
所以,它一定在那里。然后我在/spec/model/bookmark_step.rb中创建了一个spec文件。但是当我试着用

rspec规格/型号/书签\u规格.rb

我明白了

使用时

bundle exec规范

我明白了

绑定器:未找到命令:rspec 使用
bundle安装安装缺少的gem可执行文件

好吧,到目前为止还很糟糕。我们试试别的吧。为什么不从ubuntu源代码安装(我正在使用ubuntu 12.04):

sudoapt-get安装ruby-rspec内核

建议套餐: ruby-rspec 将安装以下新软件包: ruby-rspec内核 0已升级,1已新安装,0已删除,73未升级

好的,让我们通过打字开始

rspec规格/型号/书签\u规格.rb

猜猜我得到了什么

/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:440:in `load_missing_constant': uninitialized constant RSpec::Core::Formatters (NameError)
from /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in `const_missing'
from /var/lib/gems/1.8/gems/rspec_spinner-2.0.0/lib/rspec_spinner/base.rb:12
from /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:158:in `require'
from /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:158:in `require'
from /var/lib/gems/1.8/gems/rspec_spinner-2.0.0/lib/rspec_spinner.rb:4
from /var/lib/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `require'
from /var/lib/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `require'
from /var/lib/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `each'
from /var/lib/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `require'
from /var/lib/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `each'
from /var/lib/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `require'
from /var/lib/gems/1.8/gems/bundler-1.1.5/lib/bundler.rb:119:in `require'
from (...) Workspace/config/boot.rb:116:in `load_gems'
from /var/lib/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:164:in `process'
from /var/lib/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send'
from /var/lib/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
from (...)  Workspace/config/environment.rb:28
from (...)  Workspace/spec/model/../spec_helper.rb:4:in `require'
from (...)  Workspace/spec/model/../spec_helper.rb:4
from (...)  Workspace/spec/model/bookmark_spec.rb:2:in `require'
from (...)  Workspace/spec/model/bookmark_spec.rb:2
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:386:in `load'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:386:in `load_spec_files'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:386:in `map'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:386:in `load_spec_files'
from /usr/lib/ruby/vendor_ruby/rspec/core/command_line.rb:18:in `run'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:55:in `run_in_process'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:46:in `run'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:10:in `autorun'
from /usr/bin/rspec:4
好的,最后一件事可能是版本不匹配。我猜ubuntu为rails 3安装了rspec,而我需要为rails 2.3.5安装rspec。但是我试了很多让它工作。无论如何,我想这是错误的方法,所以我最终停止寻找最后一条错误消息的确切原因


有人知道我还能尝试什么吗?或者是我应该改变什么

我们在rails 2.3.14应用程序中使用了以下内容。我想它应该也适用于2.3.5

group :development, :test do
  gem "rspec-rails", "1.3.4"
  gem "steak"
  gem "factory_girl", "2.6.4"
  gem "database_cleaner"
end

group :test do
  gem "mocha"
  gem "capybara", "~> 0.3.9"
end

出于某种原因,我在Ubuntu上注意到环境加载的时间不够早,无法触发bundler加载测试组gems。我还没有找出根本原因,但像这样运行我的测试很有效:


RAILS\u ENV=test bundle exec rspec

您是否尝试了
bundle exec rspec
(而不是
bundle exec spec
)?谢谢您的提示。我尝试了
spec
rspec
。使用从Ubuntu源代码安装的ruby rspec内核,它可以运行,但不能真正执行给定的规范。当我输入
bundle exec rspec
时,结果看起来是:
}排除了所有内容?在0.00003秒内完成0个示例,0个失败
并使用
bundle exec rspec spec/model/bookmark_spec.rb
给出了前面提到的错误…好的,谢谢你的回答。我也试过了。结果是出现以下错误:
/var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active\u-support/dependencies.rb:440:in
load\u-missing\u-constant':未初始化常量RSpec::Core::Formatters(namererror)from/var/lib/gems/activesupport-2.3.5/lib/active\u-support/dependencients.rb.80:in
const\u-missing'(…)
。但是,它确实安装在我的系统上。我查看了
gem列表
rspec(1.3.1,1.3.0)rspec rails(1.3.4,1.3.2)
这似乎不是版本问题,而是安装问题。。。
group :development, :test do
  gem "rspec-rails", "1.3.4"
  gem "steak"
  gem "factory_girl", "2.6.4"
  gem "database_cleaner"
end

group :test do
  gem "mocha"
  gem "capybara", "~> 0.3.9"
end