2

これに関するドキュメントは見つかりません。私の直感ではadd_development_dependency、gemspec ファイルには、開発とテストに必要な追加の依存関係のみをリストする必要があり、指定された依存関係に依存しadd_runtime_dependencyてインストールすることができます。

gem testコマンドが開発依存関係のみをインストールし、テスト中にランタイム依存関係が必要な場合は失敗することを発見して驚いた.

それは単なるgem test癖ですか、それとも開発の依存関係は常に必要なランタイムの依存関係を次のように言い換えるべきですか?

Gem::Specification.new do |s|
  # ...
  s.add_runtime_dependency 'rack'
  s.add_runtime_dependency 'net-http-persistent'
  s.add_development_dependency 'rack-test'
  s.add_development_dependency 'webmock'
  s.add_development_dependency 'rack'
  s.add_development_dependency 'net-http-persistent'
end

?

4

1 に答える 1

4

gem test実際にテストする前に、テストしたいgemをインストールしていると仮定します。

gem install whatever
gem test whatever

すべてのテストは、これが事実であることを示します。最初に呼び出し、コマンドinstall_stub_gemを実行するための偽の gem をインストールします。gem test

gem がすべての実行時依存関係を開発依存関係として複製しているのを見たことがありません。

開発の依存関係

開発目的でのみ使用される宝石。(私のものを強調)

したがって、ランタイムの依存関係でもある Gem は、このカテゴリには当てはまりません。

于 2013-01-09T18:21:05.050 に答える