feature specがciで動作しませんでした。そのため全てがpending状態で不安の中開発をしていました。
そろそろ動くようにしないと自分の精神状態がやばくなりそうだったので修正しました。
capybaraとselenium-webdriveのupdate
バージョンがかなり古くなっていたため更新しました。
bundle update selenium-webdrive capybara
dockerのimage
nodeやyarnが入っていると書いてあったので
- image: circleci/ruby:2.4.2-node-browsers
こちらを設定
エラーが変わった
初めのエラーはformatがないというエラーだったのですが、今度は
session not created: Chrome version must be >= 68.0.3440.0
(Driver info: chromedriver=2.42.591071 (0b695ff80972cc1a65a5cd643186d2ae582cd4ac),platform=Linux 4.4.0-134-generic x86_64)
検索するとよく見るエラーに変わりました。chromedriverが2.42なのでchromeのバージョンは68.0.344以上にしてねということです。
最初見たときはバージョンが66も違うじゃんと思いましたがとんでもない勘違いでした。
http://chromedriver.chromium.org/downloads
chromedriver2.42は Chrome v68-70をサポートしていますということだったんですね。相変わらず愚かです。
chromeを入れてwebdriver固定
2.42にバージョンを固定しつつ新しいchromeを入れるということにしました。今のところ68以上だったら問題ないはずですがここもバージョンが合わなくなってきたらchromedriverをupdateしたらいいのかな?
run:
name: webdriver version set
command: bundle exec chromedriver-update 2.42
run:
name: install latest chrome
command: |
sudo apt-get update
sudo apt-get install lsb-release libappindicator3-1
curl -L -o google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome.deb
sudo sed -i 's|HERE/chrome"|HERE/chrome" --no-sandbox|g' /opt/google/chrome/google-chrome
rm google-chrome.deb
とりあえずtestを実行したいからこのままで
あとは微調整
manifest.jsonがないとか, 先にcompileしようとか, FactoryBotの書き方が古かったりとかで色々エラーが出ましたがついに動作するようになりました。
とりあえずpendingを解除するか...