4ヶ月振りにポートフォリオに触ったらRSpecとHerokuのデプロイでエラーが出た話
はじめに
エンジニアとして働き始めて早くも4ヶ月経ちました。
7月に入ってから業務でデータ分析基盤の構築に携わることになり、Fluentd、Embulk、ElasticSearch等を勉強する必要性が出てきたため、それらを勉強するための実験場として転職活動時に作成したポートフォリオを利用しようと思い、4ヶ月振りに触ったのですが、webdriverとHerokuでガッツリはまってしまったので誰かの参考になればと思い、久々に記事を書くことにしました。
前提
- macOS Mojave
- Ruby 2.5.0
- Rails 5.2.2
要点
RSpecでのエラー
RSpecでのエラー
何点かファイルを変更したのでテストを走らせたらフィーチャースペックで見事に全コケしてて、何事だろうと思ってエラー内容を確認したところ、下記のようなエラーでした。
Selenium::WebDriver::Error::SessionNotCreatedError:
session not created: Chrome version must be between 70 and 73
Chromeのバージョンが70~73の間に入ってないぞという話なので、使用しているChromeのバージョンを調べたところ、75.0.3770.100
とのことだったので、これが原因と分かりました。
更に調べていくと、chromedriver-helper gem
は廃止予定らしく、webdrivers gem
を使えば良いとのことだったので、一旦Gemfile.lockを削除してbundle install
を実行した後、再度テストをするとテストが通るようになりました。
(ちなみに、この時はこのGemfile.lockを作り直す作業が、後述するHerokuエラーに繋がることなど知る由もありませんでした。)
- gem 'chromedriver-helper'
+ gem 'webdrivers', '~> 3.0'
Herokuデプロイでのエラー
テストが通ったので最後にデプロイして終わりだーと思ったのですが、またしてもここでエラーに見舞われました。
エラーの内容は下記の通りです。
remote: Activating bundler (2.0.2) failed:
remote: Could not find 'bundler' (2.0.2) required by your /tmp/build_be01b72423bcb8427f9483fee7b4337e/Gemfile.lock.
remote: To update to the latest version installed on your system, run `bundle update --bundler`.
remote: To install the missing version, run `gem install bundler:2.0.2`
remote: Checked in 'GEM_PATH=vendor/bundle/ruby/2.5.0', execute `gem env` for more information
remote:
remote: To install the version of bundler this project requires, run `gem install bundler -v '2.0.2'`
remote:
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to tranquil-ravine-25204.
何やらActivating bundler (2.0.2) failed
とのことで、gem install bundler
が上手くいかないとのことです。
以前動いていた時のbundlerのバージョンは何だったっけと思い、自分のポートフォリオの過去のブランチ中にあるGemfile.lockの最後の行を見ると、
BUNDLED WITH
2.0.1
となっていたので、再度Gemfile.lockを削除してbundle _2.0.1_ install
を実行して、herokuへのデプロイをしてみると解決しました。
ちなみに、調べてみたところ何やらbundler2.0.2はつい先月リリースされたものらしく、その辺が影響しているっぽいです。
(おまけ)その他
Faker gemも更新されていたようで、seedデータを入れようとしたら「Faker::OnePiece
なんて知らないよ」と怒られました。
公式ドキュメントを見たらFaker::JapaneseMedia::OnePiece
とする必要があるとのことが分かったので修正したら解決しました。
まとめ
当たり前のことですが、たった4ヶ月でもソフトウェアは進化しているのだなぁと改めて感じた体験でした💡
この記事で同じミスで時間を奪われる人が減れば幸いです。
Author And Source
この問題について(4ヶ月振りにポートフォリオに触ったらRSpecとHerokuのデプロイでエラーが出た話), 我々は、より多くの情報をここで見つけました https://qiita.com/fuku_tech/items/d9400c23e1f47892d33c著者帰属:元の著者の情報は、元の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 .