2

私はgemを開発していますが、Gemfileは次のようになります。

source :rubygems

gemspec

group :development, :test do
  gem "pry"
  gem "debugger"
  gem "rake"
end

ただし、テストを実行するときにインストールする必要はありませんがprydebuggerテストでそれらを要求できるようにする必要もあります(接頭辞が。のテストを実行しbundle execていて、ロードパスで取得できないため) Gemfileにない場合)。どうすればこれを達成できますか?

また、開発に使用するgemをgemspecに配置するタイミングと、Gemfileに配置するタイミングを教えてください。違いはよくわかりません。

4

4 に答える 4

6

次のように、開発依存関係として gemspec に gem を追加できます。

Gem::Specification.new do |s|
  # ...
  s.add_development_dependency 'pry'
  s.add_development_dependency 'debugger'
  s.add_development_dependency 'rake'
end

これらは、gem 自体をインストールするときではなく、gem で作業するときにのみインストールされます。

于 2013-02-13T21:15:39.553 に答える
4

@andrew-vit が言ったように、開発依存関係として gem 仕様に追加できます

Gem::Specification.new do |spec|
   #...
   spec.add_development_dependency "pry"
   spec.add_development_dependency "debugger"
   #...
end

require 'pry'これは開発の依存関係になるため、メインの gem アプリに追加したくないのでspec_helper.rb、テスト セットアップ ファイルに追加するだけです。

require 'rspec'
require 'vcr'
require 'pry'
#...

その後、仕様を実行するときにbinding.pry、サンドボックスのコードに仕様を追加できます。コードをプッシュする前に、仕様が実行されていることを確認してください。そうすれば、壊れた場合、コードにブレークポイントを忘れていることがわかります。

于 2015-02-02T19:04:37.417 に答える
1

解決策を見つけました。私はそれらをグループに入れることができます。

source :rubygems

gemspec

group :development, :test do
  gem "rake"
end

gem "debugger", :group => :debugger
gem "pry",      :group => :pry

このようにして、貢献者はそれらをインストールしないことを選択できます。

bundle install --without debugger pry
于 2012-05-15T15:43:36.347 に答える