LoginSignup
66
57

More than 5 years have passed since last update.

RubyMineでRSpecを実行する小技

Last updated at Posted at 2014-12-15

RubyMineでRSpecを使う際、設定しておくと便利な小技を紹介します。

Springを利用する

Rails 4.1 からデフォルトになっているプリローダで、もうないと我慢出来ないぐらいです。

RubyMineで使いたい場合は、下記で設定できます。

spring_setting.png

auto test

RSpecなどのテストを実行したら、下記の実行結果が表示されますが、左には「Toogle auto-test」のスイッチがあります。
これを活性化すると、保存する都度 前回の実行したテスト が自動で実行してくれます。

Screen_Shot_2014-12-15_at_20_29_12.png

厳密に言いますと、「保存する都度」のではなく、一定の間隔でファイルの変更があるかどうかを検出するのです。

その間隔は最短1秒までに設定できます。

Screen_Shot_2014-12-15_at_21_38_57.png

run context configuration

保存すると自動でテストを実行してくれるのは楽ですが、実際の開発ではよく
「このexampleだけ」とか「このcontext配下のexampleだけ」を実行したいですよね。

RSpecの場合は、rspec spec/models/slide_spec.rb:21的に行番号を指定すればコンテキストを判定して実行してくれます。

RubyMineも同じ機能があります。設定画面のKeymapセクションの下に「run context configuration」というコマンドがあります。好きなショットカートキーを設定しておけば、**実行したい行にカーソルをおいてから設定したショットカートキーを押すと、RSpecに行番号を指定して実行するのと同じく、コンテキストを判定して実行してくれます。

Screen Shot 2014-12-15 at 21.48.54.png

問題点

  • springrspecを実行すると謎のエラーが出てしまいます。
    • 原因:RubyMineが裏で起動しているspringプロセスと別に、既にターミナルでspringを起動していると、このような不具合が出ます。
    • 解決方法:別で起動したspringを停止しておく
    • 参考URL http://qiita.com/sato1043/items/5e797a5358592389bae4
  • たまにspringがリロードされない
    • 使っているspring 1.1.3の問題かもしれませんが、たまにFactoryGirlのファイルを修正しても反映されないケースがあります。
    • 今のところ、RubyMineを再起動するしかないようです。別の方法をご存知の方はぜひ教えてください。 リロードさせたい場合は、コマンドラインでtouch config/application.rbを実行すればOKです!参考リンク

以上、ご参考になれば嬉しいです!

66
57
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
57