RubyMineでRSpecを使う際、設定しておくと便利な小技を紹介します。
Springを利用する
Rails 4.1 からデフォルトになっているプリローダで、もうないと我慢出来ないぐらいです。
RubyMineで使いたい場合は、下記で設定できます。
auto test
RSpecなどのテストを実行したら、下記の実行結果が表示されますが、左には「Toogle auto-test」のスイッチがあります。
これを活性化すると、保存する都度 前回の実行したテスト が自動で実行してくれます。
厳密に言いますと、「保存する都度」のではなく、一定の間隔でファイルの変更があるかどうかを検出するのです。
その間隔は最短1秒までに設定できます。
run context configuration
保存すると自動でテストを実行してくれるのは楽ですが、実際の開発ではよく
「このexampleだけ」とか「このcontext配下のexampleだけ」を実行したいですよね。
RSpecの場合は、rspec spec/models/slide_spec.rb:21
的に行番号を指定すればコンテキストを判定して実行してくれます。
RubyMineも同じ機能があります。設定画面のKeymap
セクションの下に「run context configuration」というコマンドがあります。好きなショットカートキーを設定しておけば、**実行したい行にカーソルをおいてから設定したショットカートキーを押すと、RSpecに行番号を指定して実行するのと同じく、コンテキストを判定して実行してくれます。
問題点
-
spring
+rspec
を実行すると謎のエラーが出てしまいます。- 原因:RubyMineが裏で起動している
spring
プロセスと別に、既にターミナルでspring
を起動していると、このような不具合が出ます。 - 解決方法:別で起動した
spring
を停止しておく - 参考URL http://qiita.com/sato1043/items/5e797a5358592389bae4
- 原因:RubyMineが裏で起動している
- たまにspringがリロードされない
- 使っている
spring 1.1.3
の問題かもしれませんが、たまにFactoryGirl
のファイルを修正しても反映されないケースがあります。 -
今のところ、RubyMineを再起動するしかないようです。別の方法をご存知の方はぜひ教えてください。リロードさせたい場合は、コマンドラインでtouch config/application.rb
を実行すればOKです!参考リンク
- 使っている
以上、ご参考になれば嬉しいです!