課題
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