前人未踏の領域へ WEB・インフラ・プログラミング全般編

フロントエンド、バックエンド、インフラ、言語など、アプリ開発、IOT以外の記録

RubyMineのRSpec実行時にテストが固まる

課題

Mac上のRubyMineからRSpecを実行しているが、config内のファイルやModelクラスのvalidationなどを編集すると テストを実行しても途中で止まってしまい、RubyMineを再起動しないとテストが実行できなくなった。

原因

springのリロードがうまく機能していない。 プロセスにはspringがいるが、statusを見ると起動していないと言われる。

$ ps -x|grep spring
28063 ??         0:00.35 spring server | hoge | started 1 min ago  
28083 ??         0:00.43 spring app    | hoge | started 0 secs ago | test mode      
28105 ttys001    0:00.00 grep spring
$ spring status
Spring is not running.

RubyMineでは SPRING_TMP_PATH という環境変数で定義されたパスに個別のspringインスタンスが生成される。 この変数は {temp_dir}/RMSpring と等しい値になる。 なので以下のようなコマンドを叩くと

$ SPRING_TMP_PATH=${TMPDIR}/RMSpring bin/spring status
Spring is running:

41298 spring server | hoge | started 5 secs ago

springが実行されていることがわかる.

対応

springを停止する

SPRING_TMP_PATH=${TMPDIR}/RMSpring bin/spring stop

でもなんか駄目なことが多い気がする。そんなときは kill してしまおう。

$ kill 28063

参考

www.jetbrains.com

/* Responsive: yes */