web-dev-qa-db-ja.com

宝石の開発とテスト

Ruby gemsの開発は初めてですが、試してみようと思いました。

最近、Railscasts(http://railscasts.com/episodes/245-new-gem-with-bundler)の最新エピソードをチェックしています。私はBundlerを使用してgemを作成しています。

しかし、私は自分の宝石をテストする方法についてはちょっと無知です。

確かにrake installを実行してから、irbから要求することはできますが、これは私にとって一種の遅いワークフローのようです。

私がやりたいのは、ダミーのRailsアプリを作成し、そのソースコードを参照してgemを要求することです。これは可能ですか?どこかで読んだことがあると思います…

ありがとう!

26
Erik

これらの行をRakefileに含めることができます。

task :console do
  exec "irb -r mygem -I ./lib"
end

これにより、新しいirbセッションを初期化し、ライブラリをプリロードするrakeタスクが作成されます。今、あなたがしなければならないのは:

$ rake console
33
Javier Vidal

Ryan Biggからのこのガイドを十分にお勧めすることはできません: http://bundler.io/v1.16/guides/creating_gem.html 。 Bundlerを使用してgemを生成し、自動テストを設定する手順を説明します。実際にコードを手動で実行しなくても、機能を開発できます。これは私が自分の宝石開発に使用しているワークフローであり、これまでのところ非常にうまく機能しています。

更新:質問を読み直すと、gemはRailsエンジンです。JoséValimのEngineXを確認することをお勧めします。これは、ダミーのgemを作成するジェネレーターですRailsテスト用アプリ( https://github.com/josevalim/enginex )。すでにたくさんのコードがある場合は、 http://keithschacht.com/ created-a-Rails-3-engine-plugin-gem / は、テスト用のダミーアプリをセットアップするのに役立つ場合があります。

24
Joe Fiorini

あなたは実際に行うことができます:

cd ~/my_gem_pathbundle console

そして、これは簡単なテストになります:

My::Gem::VERSION

12
mcKain

gemをローカルで参照する ができますが、実行したくない場合はbundle update gemを変更するたびに、フルパスを使用するか、gemを/ vendorに移動(またはシンボリックリンク)することで、ファイルを要求できます。

しかし、正直なところ、いくつかのテストを書く必要があるようです! ;)行った各変更を手動でテストすると、面倒でエラーが発生しやすくなります。宝石を書くのが初めての場合は、他の人気のある宝石のソースを見て、それらがどのようにテストされているかを確認してください。

6
idlefingers