2

インストールされたばかりで、OSXにjruby-1.4.0がインストールされcucumber 0.7.2ています。cucumber-rails 0.3.1バンドルインストールを実行すると、すべてのgemコード/依存関係を含むcucumber-railsディレクトリがメインアプリに配置されます。

まず第一に、これは間違いなく私が望んでいることではなく、なぜこれがキュウリレールだけで起こるのかわかりません。

次に、このフォルダーを削除して、キュウリレールを手動でインストールすると、実行すると次のscript/generate feature blahようになります。

/Users/bradrobertson/.rvm/rubies/jruby-1.4.0/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:344:in `refresh!': source index not created from disk (RuntimeError)
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:34:in `refresh!'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:29:in `initialize'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `new'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:298:in `add_gem_load_paths'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:132:in `process'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
    from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:13
    from /Users/bradrobertson/Repos/app/source/trunk/config/environment.rb:1:in `require'
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:1
    from /Users/bradrobertson/.rvm/gems/jruby-1.4.0/gems/rails-2.3.5/lib/commands/generate.rb:3:in `require'
    from script/generate:3

同様に実行するrake cucumberと、

rake aborted!
source index not created from disk

したがって、明らかに何かが機能しません。そのcucumber-railsディレクトリを再び追加すると、rake cucumber実際に実行されます。

Railsアプリにgemをインストールする必要がある理由を誰かに教えてもらえますか?私はこれを前に見たことがありません。

セットアップ
jruby-1.4.0
キュウリ-0.7.2
キュウリレール0.3.1
バンドラー
0.9.23webrat0.7.1

編集

これに加えて、私はこれを機能させることにうんざりしていると判断したので、Gemfileからすべてのキュウリ/キュウリレールのデップを削除して再実行しましbundle installた。それでもcucumber-railsディレクトリが作成され、さらに、そのディレクトリが存在しない限り(rakeなど)何も実行できません。存在しない場合はsource index not created from diskメッセージが表示されます。

EDIT2 私は自分Rails.root/.bundle/configが持っていることに気づきましたBUNDLE_PATH: cucumber-rails。なぜこれがそこにあるのか誰かが知っていますか?

4

2 に答える 2

1

これは、bundlerを使用してインストールする方法と関係があります。

あなたはおそらく次のようなことをしました:

バンドルインストールキュウリレール

このバンドラーを実行する場合、プロジェクト内のこのディレクトリでバンドルをベンダー化することを前提としています。

.bundle / configには、おそらく次のものが含まれているはずです。


BUNDLE_DISABLE_SHARED_GEMS: "1"

このフォルダを削除すると、実際にはバンドルが削除されます。

上記のようにこれを変更して、以下を実行します。

バンドルインストール。

于 2011-04-07T11:16:09.827 に答える
0

次のgemで最初からアプリケーションを実行することができました。

$ jruby -S gem list

*** LOCAL GEMS ***

actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activerecord-jdbc-adapter (0.9.6)
activeresource (2.3.5)
activesupport (2.3.5)
builder (2.1.2)
bundler (0.9.25)
cucumber (0.7.2)
cucumber-rails (0.3.1)
database_cleaner (0.5.2)
diff-lcs (1.1.2)
gherkin (1.0.24)
jdbc-sqlite3 (3.6.3.054)
jruby-openssl (0.7)
json_pure (1.4.3)
nokogiri (1.4.1)
rack (1.0.1)
rack-test (0.5.3)
rails (2.3.5)
rake (0.8.7)
term-ansicolor (1.0.5)
trollop (1.16.2)
webrat (0.7.1)

Bundler 0.9.25にアップグレードする必要があり、Rails2でBundlerを使用するための手順に従いました。

http://gembundler.com/rails23.html

これが私のGemfileの外観です。

source :gemcutter
gem "rails", "~> 2.3.5"
gem 'activerecord-jdbc-adapter', :require => false
gem 'jdbc-sqlite3', :require => false

group :development do
end

group :test do
  gem 'cucumber-rails'
  gem 'webrat'
  gem 'database_cleaner'
end
于 2010-05-07T19:56:13.277 に答える