Help us understand the problem. What is going on with this article?

RubyMineでRSpecを実行する小技

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です!参考リンク

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away