こんにちは。
梅雨の季節は天パにとって天敵です。
せっかく髪セットしてるのに駅までの7分間ですでに髪がうねる。
それが非常に辛い。
どうもハチマキです。
はじめに
さて、今回はrailsチュートリアルを進めている中で、なぜかrails testがびくともしなくなり、固まる現象が起きました。
色々ググった結果、解消できたのでメモ程度に書いていきたいと思います。
本日の概要 : 「rails testが動かない時」の解決法
事象
$ rails testを実行したら固まる。またはエラーが発生した
エラー例
$ rails test Running via Spring preloader in process 97274 2020-05-31 09:22:21 WARN Selenium [DEPRECATION] Selenium::WebDriver::Chrome#driver_path= is deprecated. Use Selenium::WebDriver::Chrome::Service#driver_path= instead. Traceback (most recent call last): 49: from -e:1:in `<main>' 48: from /Users/ユーザ名/.rbenv/versions/2.6.4/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 47: from /Users/ユーザ名/.rbenv/versions/2.6.4/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 46: from /Users/ユーザ名/アプリケーション名/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies.rb:285:in `load' 45: from /Users/ユーザ名/アプリケーション名/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies.rb:257:in `load_d ・ ・ (省略)
問題点
ググった結果、
springはRailsアプリケーションのプリローダーとやらで、これが機能していると、
入力したrailsコマンドの起動が次から早くなるそうですが、運が良いと固まる事があるらしい。
※仮にstopさせたとしても、railsコマンドを入力した際に自動で起動するので大丈夫らしい。
とのことで、一旦springをstopさせるため下記を実行してみる
$ spring stop rbenv: spring: command not found The `spring' command exists in these Ruby versions: 2.2.4 2.5.0
解消できず。。別のエラーが出てくる。。
解決方法
解決方法は、※「sudo」を加えて、
- $ sudo gem install springを実行した後
- $ spring stopを再度実行する
※sudoとは:スーパーユーザー(rootユーザー)の権限経由でコマンドを実行する
$ sudo gem install spring Fetching spring-2.1.0.gem Successfully installed spring-2.1.0 Parsing documentation for spring-2.1.0 Installing ri documentation for spring-2.1.0 Done installing documentation for spring after 0 seconds 1 gem installed $ spring stop Spring stopped.
無事に止まりました!
そして再度$ rails testを実行したら無事に動きました。。
$ rails test Running via Spring preloader in process 64338 Started with run options --seed 13936 FAIL["test_should_get_home", Minitest::Result, 6.025406999979168] test_should_get_home#Minitest::Result (6.03s) <Home | Ruby on Rails Tutorial Sample App> expected but was <Ruby on Rails Tutorial Sample App>.. Expected 0 to be >= 1. test/controllers/static_pages_controller_test.rb:7:in `block in <class:StaticPagesControllerTest>' FAIL["test_should_get_contact", Minitest::Result, 6.043967999983579] test_should_get_contact#Minitest::Result (6.04s) <contact | Ruby on Rails Tutorial Sample App> expected but was <Contact | Ruby on Rails Tutorial Sample App>.. Expected 0 to be >= 1. test/controllers/static_pages_controller_test.rb:25:in `block in <class:StaticPagesControllerTest>' 4/4: [===================================================================================================================================] 100% Time: 00:00:06, Time: 00:00:06 Finished in 6.04579s 4 tests, 8 assertions, 2 failures, 0 errors, 0 skips
testはred(エラー)でした笑