Posted at

Docker上でRspecを実行するとmysqld.sockが無いって言われる

More than 1 year has passed since last update.


結論

※development環境でテストを行いたい場合

rails_helper.rbでは

デフォルトでtest環境が当てられているので、

それをコメントアウトして、使いたい環境のものに変える

#ENV['RAILS_ENV'] ||= 'test'

ENV['RAILS_ENV'] = 'development'


原因

development環境でテストを流したかったけど

Rspecがtest環境を見ていたため、

database.ymlの情報と不整合が生じたため。


出現したエラー文

hogeとhugaは各自のエラーメッセージを参照してください。

Failure/Error: ActiveRecord::Migration.maintain_test_schema!

Mysql2::Error:
Can't connect to local MySQL server through socket '/hoge/huga/mysqld.sock' (2 "No such file or directory")


終わり

Rspecで最初にハマるとこはこの環境が一致してない問題だと思う。

Railsがdevelopmentなので

Rspecも勝手にdevelopmentを見るものだと勘違いしてました。

勘違いって怖いですよね。

短いですが終わります。

テストコード関連も今後ストック増やしてきますー!