Rails tやRails sでクラッシュレポートが出る!テストが実行されないとき。sqlite3関連エラー
今回起きたエラー
Rails6.0でアプリ作成中にサーバー立ち上げや、
テスト実行で以下のクラッシュレポートが出ました。
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/CrashReporter
* /Library/Logs/CrashReporter
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
Don't forget to include the above Crash Report log file in bug reports.
このサイトによると、使っているsqlite3の参照元がいけないだとか。
こちらのサイトを参考に、
使うsqlite3をhomebrewからインストールしたものに変えてみた。
開発環境
OS: 64bit Mac macOS Catalina 10.15.3
Ruby 2.6.3
Rails6.0
やったこと
sqlite3インストール準備、brewをアップデート
sqlite3のバージョン確認。
$ sqlite3 --version
3.28.0 2019-04-15 14:49:49 378230ae7f4b721c8b8d83c8ceb891449685cd23b1702a57841f1be40b5daapl
sqlite3のパスを確認。
$ which sqlite3
/usr/bin/sqlite3
一応あらかじめbrewをアップデートしておく。
$ brew update
インストールしたパッケージのアップグレード。
$ brew upgrade
sqlite3のインストール
$ brew install sqlite3
Warning: sqlite 3.31.1 is already installed and up-to-date
To reinstall 3.31.1, run `brew reinstall sqlite`
どうやら元々大丈夫そうだったけど、reinstallされた。問題はなさそう。
/usr/local/binへのシンボリックリンク作成
cdでこんなこともできるんですね。
$ cd /usr/local/bin
Homebrewのインストール先の『Cellar』からsqlite3のシンボリックリンクを作成します。
とのことだ。
3.31.1という箇所は各自のバージョンに合わせてください。
$ ln -sf ../Cellar/sqlite/3.31.1/bin/sqlite3 ./
先ほどのシンボリックリンクが作成されたか確認。
$ ls -la
lrwxr-xr-x 1 takerusugeno admin 35 5 4 01:04 sqlite3 -> ../Cellar/sqlite/3.31.1/bin/sqlite3
パスを通す
vimで直接パスを編集していきます。
$ vim ~/.bash_profile
最後の行に以下を追記。
export PATH=/usr/local/bin:"$PATH"
設定内容を反映させる。
$ source ~/.bash_profile
変更の確認
再度バージョン確認。
$ sqlite3 --version
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837bb4d6
ふむ、ちゃんと先ほどbrewでインストールしたバージョンになってますね。
パスを確認。
$ which sqlite3
/usr/local/bin/sqlite3
変更できてるみたいです。
まだクラッシュレポートが出る
Gem fileのminitestを'5.14.0'にして、
$ bundle update
以前、変わらずクラッシュレポート
最終手段
sqlite3をアンインストール。
$ gem uninstall sqlite3
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 repository.
その後、sudoで強引に消す。
※個人開発なので777を使いましたが、あくまで最終手段です。
chmodについては、あとでちゃんと調べるようにとメンターに念押しされました。
$ sudo chmod -R 777 /Library/Ruby/Gems/2.6.0
結果、システムのRubyに入ってた二つのバージョンのsqlite3が消えたようです。
ここで、試しにテストすると、稼働しました。
しかし、依然クラッシュレポートが出てる。
とりあえずテストが実行されたので、今はこれで御の字。
と思ったが、Gitにpush後にもう一度テストしたらクラッシュが出なくなった。
なるほど、さっぱり分からんという状態です。
ローカル環境構築時に、よく分からなくて複数バージョンのGemを大量に入れてしまっていたことと、
それらのシステムのRubyのGemを使用元にしているために、コンフリクトを起こしやすくなっているかもしれないです。
現在作っているアプリが完成したら、環境構築を1からやり直した方が良いかもしれないと感じました。
Author And Source
この問題について(Rails tやRails sでクラッシュレポートが出る!テストが実行されないとき。sqlite3関連エラー), 我々は、より多くの情報をここで見つけました https://qiita.com/_Sugeno_/items/4b967d51be27466ed089著者帰属:元の著者の情報は、元の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 .