Railsアプリでフロント側にカンタンなvue.jsの実装を追加した為、jsもテストすることに。
feature specを書く時に js: true
を追加が必要になる。
feature "sample", js: true do
background { visit "/sample" }
scenario "アクセスできる" do
expect(page).to have_content("ページタイトル")
end
end
ローカルでrakeも通るようになり、いざPRを出したとことCIでテストが失敗する。
CIはCircle CIを使っていたが、CI上でphantom.jsのエラーが発生していた。
Cliver::Dependency::VersionMismatch:
Could not find an executable 'phantomjs' that matched the requirements '~> 1.8', '>= 1.8.1'. Found versions were {"/usr/local/bin/phantomjs"=>"2.1.1"}.
circleci.ymlに記載されているdocer imageが circleci/ruby:2.3.6-node
だった為、jsのテストが出来る状態でなかった。
ここを circleci/ruby:2.3.6-node-browsers
に変更した。
jobs:
test:
docker:
- image: circleci/ruby:2.3.6-node-browsers
circleci/ruby:2.4.1-nodeだとchromeとかxvfb入ってない