Open KentoBF5587 opened 1 month ago
お疲れ様です。 本リリースは終わりましたが、テストコードを書く際に詰まってしまっており、もし大丈夫であれば質問しても宜しいでしょうか?
実装したいもの・解決したいもの: システムスペックのテストを書けるための準備(モデルスペックはいくつか書いてテスト機能も動きます)
エラー内容
services.web.depends_on.chrome condition is required
↑ターミナルで表示されます
エラーの意味とエラー内容から推測される原因
compose.ymlファイルの記述に問題があるという推測です。 元々の箇所が、
depends_on:
db:
condition: service_healthy
となっているため
depends_on:
chrome:
condition: service_healthy
db:
condition: service_healthy
と書くのかとも思いましたが、chromeにはservice_healthyを使わないという事を知り、また参考にした記事でも特に service_healthyを特に設定していなかったので、これではないかなと考えています。
実装する際に参考にした資料:
[https://hackmd.io/@SKjw2RY-RNCUNSdJfEWPig/HJE0GUClC](rails newからデプロイするまでやってみよう) RUNTEQカリキュラムの「RSpec入門・演習」のリポジトリ
エラーを解決するために調べた資料 https://qiita.com/masarashi/items/84761a4e8de494f4d073
補足 現在以下のように進めております。
この2点を済ませた上に、compose.ymlファイルに必要事項を追記しようとカリキュラムを参考に
services > web > environment 下に SELENIUM_DRIVER_URLの追記
services > web > depends_on 下に chrome: {} の追記
services > chrome 下に image, portsの追記
こちらの3点を付け加えて以下のように書きました
version: '3'
services:
db:
image: postgres
restart: always
environment:
TZ: Asia/Tokyo
POSTGRES_PASSWORD: password
volumes:
- postgresql_data:/var/lib/postgresql
ports:
- 5432:5432
healthcheck:
test: ["CMD-SHELL", "pg_isready -d bookstore_visitor_development -U postgres"]
interval: 10s
timeout: 5s
retries: 5
web:
build:
context: .
dockerfile: Dockerfile.dev
command: bash -c "bundle install && bundle exec rails db:prepare && rm -f tmp/pids/server.pid && ./bin/dev"
tty: true
stdin_open: true
volumes:
- .:/bookstore_visitor
- bundle_data:/usr/local/bundle:cached
- node_modules:/app/node_modules
environment:
TZ: Asia/Tokyo
SELENIUM_DRIVER_URL: http://chrome:4444/wd/hub
ports:
- "3000:3000"
depends_on:
chrome: {}
db:
condition: service_healthy
chrome:
image: seleniarm/standalone-chromium:latest
ports:
- 4444:4444
volumes:
bundle_data:
postgresql_data:
node_modules:
テストコードを書く