Ruby gemsの開発は初めてですが、試してみようと思いました。
最近、Railscasts(http://railscasts.com/episodes/245-new-gem-with-bundler)の最新エピソードをチェックしています。私はBundlerを使用してgemを作成しています。
しかし、私は自分の宝石をテストする方法についてはちょっと無知です。
確かにrake installを実行してから、irbから要求することはできますが、これは私にとって一種の遅いワークフローのようです。
私がやりたいのは、ダミーのRailsアプリを作成し、そのソースコードを参照してgemを要求することです。これは可能ですか?どこかで読んだことがあると思います…
ありがとう!
これらの行をRakefileに含めることができます。
task :console do
exec "irb -r mygem -I ./lib"
end
これにより、新しいirbセッションを初期化し、ライブラリをプリロードするrakeタスクが作成されます。今、あなたがしなければならないのは:
$ rake console
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 / は、テスト用のダミーアプリをセットアップするのに役立つ場合があります。
あなたは実際に行うことができます:
cd ~/my_gem_path
&bundle console
そして、これは簡単なテストになります:
My::Gem::VERSION
gemをローカルで参照する ができますが、実行したくない場合はbundle update
gemを変更するたびに、フルパスを使用するか、gemを/ vendorに移動(またはシンボリックリンク)することで、ファイルを要求できます。
しかし、正直なところ、いくつかのテストを書く必要があるようです! ;)行った各変更を手動でテストすると、面倒でエラーが発生しやすくなります。宝石を書くのが初めての場合は、他の人気のある宝石のソースを見て、それらがどのようにテストされているかを確認してください。