LoginSignup
0
0

More than 3 years have passed since last update.

「RSpecが動かない!」原因はspringだったので調べてみた

Posted at

あるアプリケーションでRSpecを導入し、いざテストコードを実行したらエラーが出てしまった。
何度見直しても設定や記述に問題はないはずなのに、なぜ動かないのか。。

原因は「spring」というgemでした。
下記のコマンドをアプリのディレクトリで入力し、再度テストコードを実行すると正常に作動しました。良かった。

mac@ myApp % spring stop
Spring stopped. ←この表記が出ればOK

ちなみにこのspringはrailsコマンドを入力すると自動で再始動しますのでご安心を。

このspringというのは何者?

簡単に言えば、railsのキャッシュみたいなものです。
rails newした際に、Gemfileにデフォルトで導入されています。

今回の場合だと、RSpecの導入をする前のキャッシュがたまたま残っており、
その状態でテストコードを実行すると「RSpecなんて使えないよ」っていうエラーが出てしまったようですね。

ちなみにspringの状態を確認するためにはこんな感じで確認できます。

mac@ myApp % spring status
Spring is running:

97404 spring server | myApp | started 10 secs ago   
97405 spring app    | myApp | started 10 secs ago | development mode   


spring stoprails cexitspring statusの順番で入力するとこのようになります。

mac@ myApp % spring stop
Spring stopped. 

mac@ myApp % rails c
Running via Spring preloader in process 97418
Loading development environment (Rails 6.0.3.2)
irb(main):001:0> exit

mac@ myApp % spring status
Spring is running:

97404 spring server | myApp | started 10 secs ago   
97405 spring app    | myApp | started 10 secs ago | development mode



ちなみに下記のコマンドではPC内で稼働してるspringを全て確認できます。

mac@ ps aux | grep spring
mac        97139 101.0  0.5  4370124  43216   ??  Rs    2:24AM   0:00.73 spring app    | myApp3 | started 0 secs ago | development mode      
mac        97106   0.2  0.3  4352516  24104 s002  S     2:24AM   0:00.42 spring server | myApp3 | started 39 secs ago   
mac        96929   0.0  1.2  4462288 100216   ??  Ss    2:20AM   0:03.23 spring app    | myApp2 | started 4 mins ago | development mode      
mac        77394   0.0  0.1  4352516   8816   ??  S     05PM     0:01.03 spring server | myApp2 | started 56 hours ago   
mac         4764   0.0  0.0  4486444    472   ??  Ss    5 720    1:18.61 spring app    | myApp1 | started 439 hours ago | development mode      
mac         4760   0.0  0.0  4351492    432   ??  S     5 720    0:01.58 spring server | myApp1 | started 439 hours ago   
mac        97142   0.0  0.0  4276476    696 s002  S+    2:24AM   0:00.00 grep spring

killコマンドでもstopできるのかな、と思い実行してみましたがすぐ復活して止めることはできませんでした。
やはり該当のディレクトリに移動し、素直にspring stopした方が良さそうです。

0
0
0

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
0
0