Rails
MySQL
RSpec
docker
自動テスト

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

結論

※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を見るものだと勘違いしてました。

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

短いですが終わります。
テストコード関連も今後ストック増やしてきますー!