Mysql2::Error: MySQL client is not connectedというエラーについて
はじめに
本記事は、Mysql2::Error: MySQL client is not connected
というエラーが起こり、
それを解決するための対策を記述しています。
Mysql2::Error: MySQL client is not connected
テストを実行するのに、負荷
がかかったことが原因でした。
小さい処理だった場合でも、
mysqlの接続スピードよりテストの処理が実行されるスピードの方が早いためエラーが起きています。
(自宅のWi-Fiがちょっと...というやつでした。)
結論
order_form_spec.rb
RSpec.describe OrderForm, type: :model do
before do
user = FactoryBot.create(:user)
item = FactoryBot.create(:item)
@order_form = FactoryBot.build(:order_form, user_id: user.id, item_id: item.id)
sleep 0.1
end
# 以下省略
# これを入力してください。
sleep 0.1
RSpec.describe OrderForm, type: :model do
before do
user = FactoryBot.create(:user)
item = FactoryBot.create(:item)
@order_form = FactoryBot.build(:order_form, user_id: user.id, item_id: item.id)
sleep 0.1
end
# 以下省略
# これを入力してください。
sleep 0.1
処理の途中
で0.1秒とめる
というイメージです。
当時の状況
テストの記述が終わりましたので、
bundle exec rspec spec/models/order_form_spec.rb
しましたところ
ActiveRecord::StatementInvalid:
Mysql2::Error: MySQL client is not connected
というエラーが発生しました。
下行には、
Finished in 0.29523 seconds (files took 1.3 seconds to load)
13 examples, 9 failures
なるほど。
と念の為、もう一度テストコマンド入力すると、
13 examples, 4 failures
!?
たまにエラーが0の時があり、テスト成功します。
13 examples, 0 failures
マリオパーティーしている感覚でした。
終わりに
テスト完璧!と思っていたため、かなり焦りました。
テストができていないと、アプリケーションとしても不十分であることの可能性が大
ですからね。
あと、Wi-Fi変えようかな・・・。
他にも、テストに関する記事を投稿しているので参考にしてください。
[テスト]FactoryBotにimageを記述する
今回の参考記事です。
RSpecのテスト中にMySQL client is not connected
明日から週はじめ!
頑張っていきましょう!!
Author And Source
この問題について(Mysql2::Error: MySQL client is not connectedというエラーについて), 我々は、より多くの情報をここで見つけました https://qiita.com/mkato1013/items/e7fd98978d90a0bad1a9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .