前提・実現したいこと
RailsアプリのRSpecテストをCircleCiで実現させたいのですが、なかなか実現できません。
お知恵を拝借できれば幸いです。
以下サイトを参考にしています。
【circleCI】Railsアプリでgithubと連携してrubocopとrspecテストを走らせる
CircleCI 2.0の設定メモ
RailsアプリをDockerで作ってCircleCIで自動テストしてHerokuにデプロイした話
発生している問題・エラーメッセージ
githubにpushしてcircleciを動作させると以下のエラーになりました。
Port 127.0.0.1で接続できず、app_testデータベースが作成できないと言われます。
(app_testはdatabase.ymlのtestで設定)
#!/bin/bash -eo pipefail bundle exec rake db:create bundle exec rake db:schema:load Can't connect to MySQL server on '127.0.0.1' (115) Couldn't create 'app_test' database. Please check your configuration. rake aborted! Mysql2::Error::ConnectionError: Can't connect to MySQL server on '127.0.0.1' (115) ... Tasks: TOP => db:create (See full trace by running task with --trace) Exited with code exit status 1 CircleCI received exit code 1
該当のソースコード
(.circleci/config.yml) version: 2 jobs: build: docker: - image: circleci/ruby:2.6.3-node-browsers environment: - BUNDLER_VERSION: 2.0.2 - RAILS_ENV: 'test' - image: circleci/mysql:5.7 environment: - MYSQL_ALLOW_EMPTY_PASSWORD: 'true' - MYSQL_ROOT_HOST: '127.0.0.1' working_directory: ~/アプリ名 steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "Gemfile.lock" }} - v1-dependencies- - run: name: install dependencies command: | gem install bundler -v 2.0.2 bundle install --jobs=4 --retry=3 --path vendor/bundle - save_cache: paths: - ./vendor/bundle key: v1-dependencies-{{ checksum "Gemfile.lock" }} # Database setup - run: mv ./config/database.yml.ci ./config/database.yml # Database setup - run: name: Databasesetup command: | bundle exec rake db:create bundle exec rake db:schema:load # run tests! - run: name: Run rspec command: | mkdir /tmp/test-results TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \ circleci tests split --split-by=timings)" bundle exec rspec \ --format progress \ --format RspecJunitFormatter \ --out /tmp/test-results/rspec.xml \ --format progress \ $TEST_FILES # collect reports - store_test_results: path: /tmp/test-results - store_artifacts: path: /tmp/test-results destination: test-results
(config/database.yml) test: <<: *default database: app_test
(config/database.yml.ci) test: adapter: mysql2 encoding: utf8 pool: 5 username: 'root' port: 3306 host: '127.0.0.1' database: app_test
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。