KentoBF5587 / bookstore_visitor

0 stars 0 forks source link

テストコードを書く #89

Open KentoBF5587 opened 1 month ago

KentoBF5587 commented 1 month ago

テストコードを書く

KentoBF5587 commented 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ファイルに必要事項を追記しようとカリキュラムを参考に

こちらの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: