前提
インフラにDockerを使ってRailsでAPIを作っており、Github Actionsでテストを実行したいと思っています。
わざと失敗するようなテストを作ってテストを行っているのですが、ローカルで実行した場合はエラーが出力されるものの、Actionsではエラーが出力されずに終了してしまいます。
実現したいこと
Github Actionsで出力されるようにしたいです。
発生している問題・エラーメッセージ
Github ActionsでRSpecが実行された結果です。
Run API test
というのが該当の部分です。
該当のソースコード
失敗させるテスト
Articleモデルでbodyが空の場合本文を入力してください
というエラーが出力されるようにしています。
ruby
1 it '入力値が正常な場合有効' do 2 article = Article.new( 3 title: '記事のタイトル', 4 body: '', 5 user_id: user.id 6 ) 7 expect(article).to be_valid 8 end
docker-compose.yml
yml
1version: "3" 2services: 3 api: 4 build: ./api 5 command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 6 ports: 7 - "3000:3000" 8 volumes: 9 - ./api:/app 10 - public-data:/app/public 11 - tmp-data:/app/tmp 12 - log-data:/app/log 13 depends_on: 14 - development-db 15 16 development-db: 17 image: mysql:8.0 18 environment: 19 MYSQL_ROOT_PASSWORD: "password" 20 MYSQL_DATABASE: "kiite_development" 21 ports: 22 - "3306:3306" 23 command: --default-authentication-plugin=mysql_native_password 24 volumes: 25 - development-db-data:/var/lib/mysql 26 27 test-db: 28 image: mysql:8.0 29 environment: 30 MYSQL_ROOT_PASSWORD: "password" 31 MYSQL_DATABASE: "kiite_test" 32 ports: 33 - "3307:3306" 34 35 front: 36 build: ./front 37 volumes: 38 - ./front:/app 39 ports: 40 - "8080:8080" 41 tty: true 42 stdin_open: true 43 command: yarn serve 44 45volumes: 46 public-data: 47 tmp-data: 48 log-data: 49 development-db-data:
github-actions.yml
yml
1name: Repository test 2on: [push] 3 4jobs: 5 test: 6 runs-on: ubuntu-latest 7 8 steps: 9 - uses: actions/checkout@v3 10 11 - name: Set environment variable 12 run: | 13 touch api/.env 14 echo ORIGIN_NAME =${{ secrets.ORIGIN_NAME }} >> api/.env 15 16 - name: Start containers 17 run: docker-compose up -d 18 19 - name: Run API test 20 run: docker-compose exec -t api bundle exec rspec 21
試したこと
Googleでテスト実行時に出力されるshell: /usr/bin/bash -e {0}
を検索してみたのですが、解決に結びつきそうな答えは得られませんでした。
ご回答や補足が必要な箇所があればご指摘お願いします。

あなたの回答
tips
プレビュー