3

私はかなり長い間私を悩ませてきた問題に取り組んでいます。何らかの理由で、ローカル マシンで rspec を開始できません。インストールして実行するためにさまざまな方法を試しましたが、どれもうまくいきませんでした。バンドラーを使用して、git リポジトリーで Ruby 1.8.7 を使用して Ruby on Rails 2.3.5 を実行しています。

まずは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 にスペック ファイルを作成しました。しかし、私がそれを実行しようとすると

rspec仕様/モデル/bookmark_spec.rb

私は得る

The program 'rspec' is currently not installed.  You can install it by typing:
sudo apt-get install ruby-rspec-core

使用時

バンドル実行仕様

私は得る

bundler: コマンドが見つかりません: rspec 不足している gem 実行可能ファイルを次のコマンドでインストールしますbundle install

わかりました、これまでのところとても悪いです。他のことを試してみましょう。なぜubuntuソースからインストールしないのですか(私はUbuntu 12.04で作業しています):

sudo apt-get install ruby​​-rspec-core

推奨パッケージ: ruby​​-rspec 次の新しいパッケージがインストールされます: ruby​​-rspec-core 0 アップグレード済み、1 新しくインストール済み、0 削除済み、73 未アップグレード。

では、入力して転がしましょう

rspec仕様/モデル/bookmark_spec.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

わかりました、最後のことはバージョンの不一致かもしれません。Rails 2.3.5のrspecが必要な間、ubuntuはRails 3のrspecをインストールすると思います。しかし、私はそれを機能させるために多くのことを試みました。とにかく、それは間違った方法だったと思うので、最終的にその最後のエラーメッセージの正確な原因を探すのをやめました.

他に何を試すことができるか、誰かが推測できますか?それとも、私が変更する必要があるものですか?

4

2 に答える 2

2

何らかの理由で、Ubuntu で環境がロードされていないため、バンドラーがテスト グループの gem をロードするのをトリガーできないことに気付きました。根本的な原因はまだわかりませんが、次のようにテストを実行するとうまくいきます。

RAILS_ENV=test bundle exec rspec

于 2015-02-26T06:23:34.683 に答える
0

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
于 2012-10-07T15:14:05.777 に答える