質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

0回答

332閲覧

Github ActionsでRSpecのエラーを出力させたい

addyson

総合スコア24

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

1クリップ

投稿2023/01/20 11:03

前提

インフラに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}を検索してみたのですが、解決に結びつきそうな答えは得られませんでした。

ご回答や補足が必要な箇所があればご指摘お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問