0

「lib/services」の下にいくつかの非 Rails 依存ファイルを含む Rails アプリがあります。これらのファイルの 1 つはDomainatrix gemを使用します。

require "domainatrix"

class SuggestionParser
  # various suggestion parsing methods
end

の下に、このファイルの空の仕様がありますspec/lib

require "services/suggestion_parser"

describe SuggestionParser do
end

残念ながら、その仕様を実行しようとするとbundle exec、エラーが発生します。

$: rspec spec/lib/services/suggestion_parser_spec.rb 
-> /Users/davidtuite/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require': cannot load such file -- domainatrix (LoadError)

私のプロジェクトの他のすべての spec と gem は、 を使用せずに実行されますbundle exec。実行するためにこれをプレフィックスにする必要があるのはなぜですか?

便宜上、ここに Domainatrix gemspec へのリンクを示します。

4

2 に答える 2

2

:path私の推測では、Gemfile のorオプションを使用して domainatrix が宣言さ:gitれており、どちらも ruby​​gems がアクセスできるように gem をインストールしていません。

これは、Gemfile から domainatrix の行を投稿すると確認できます。

于 2012-04-24T04:59:20.630 に答える
0

次のコマンドを実行してみてください。

$ rvm get head && rvm reload
$ chmod +x $rvm_path/hooks/after_cd_bundler
$ bundle install --without production --binstubs=./bundler_stubs

これで gem 固有の問題が解決するわけではありませんが、bundle execrvm を使用している場合は、テストを実行するたびに入力する必要がなくなります。

于 2012-04-24T05:16:52.613 に答える