この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
タイトル通りの小ネタです。普段、私は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」が必要なのかもしれません。