[小ネタ]springを使用してrspecが起動できない?
はじめに
タイトル通りの小ネタです。普段、私はRuby on Railsの開発でspring、rspecを使用しています。spring上でrspecを起動させるのですが、何故か急に動かなくなったので、その解決方法を書いておきたいと思います。
事象
spring上でrpsecを動かすため、いつもどおり$ spring spec spec/ を実行したら、以下のように表示されて、動きませんでした。
$ spring rspec spec/ Version: 1.1.3 Usage: spring COMMAND [ARGS] Commands for spring itself: binstub Generate spring based binstubs. Use --all to generate a binstub for all known commands. help Print available commands. status Show current status. stop Stop all spring processes for this project. Commands for your application: rails Run a rails command. The following sub commands will use spring: console, runner, generate, destroy. rake Runs the rake command rspec Runs the rspec command
解決方法
結論としては、springでrpsecを使用するためには、spring-commands-rspecが必要なようです。なので、これをGemfileに追加します。最終的に、私のGemfileは以下のようになりました。
(上略) group :development,:test do gem 'rspec-rails' gem 'pry-byebug' gem 'spring' gem 'spring-commands-rspec' end
一番下が、先ほど書いた「spring-commands-rspec」で、今回新たに追加しました。「pry-byebug」は、ステップ実行するために使用しているので、使わないのであれば必要ありません。
いつものコマンドで、gemをインストールします。
$ bundle install
springを一旦停止します。
$ spring stop
spring上でrspecを実行します。
$ spring rspec spec/
以上です。二回目からのrspecの実行から、起動が早くなるはずです。
まとめ
今までは「spring-commands-rspec」なしで実行していました。確認はしてませんが、springのバージョンにより「spring-commands-rspec」が必要なのかもしれません。