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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

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

Ruby on Rails

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

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

1回答

2473閲覧

VScodeでRSpecを実行するとエラー(終了コード1)で統合ターミナルが強制終了

rixe001

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

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

Ruby on Rails

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

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2021/06/08 13:17

編集2021/06/08 22:12

VScode上のターミナルで下記コマンドを実行してテストに失敗した際、

exec rspec spec/models/article_spec.rb

以下の様にパネルごと消失し、
「ターミナル プロセス "/bin/zsh '-l'" が終了コード 1 で終了しました。」のメッセージが表示されます。↓
イメージ説明

直接ターミナルで実行した場合、「プロセスが完了しました」以降、入力を受け付けなくなります。↓
イメージ説明

テスト内容が成功している場合はエラーメッセージは表示されませんが、統合ターミナルは強制終了します。↓
イメージ説明

rails routesやrails db:migrate:status等のコマンドは正常に実行され、VScodeのパネルは消失しません。
他のアプリケーションでも同様の現象が発生します。
原因もしくは解決に行き着く為のアドバイス等ありましたら宜しくお願いします。

###関連するコード

単体テストのコード

Ruby

1require 'rails_helper' 2 3RSpec.describe Article, type: :model do 4 before do 5 @article = FactoryBot.build(:article) 6 end 7 8 describe "記事を投稿する" do 9 context "投稿に成功する" do 10 it "画像、タイトル、カテゴリ、本文が入力されている場合、投稿できる" do 11 expect(@article).to be_valid 12 end 13 end 14 context "投稿に失敗する" do 15 it "タイトルが空の場合、投稿に失敗する" do 16 @article.title = "" 17 @article.valid? 18 expect(@article.errors.full_messages).to include("itleを入力してください")#失敗箇所 19 end 20 it "カテゴリが空の場合、投稿に失敗する" do 21 @article.category_id = nil 22 @article.valid? 23 expect(@article.errors.full_messages).to include("Categoryを入力してください") 24 end 25 it "本文が空の場合、投稿に失敗する" do 26 @article.text = "" 27 @article.valid? 28 expect(@article.errors.full_messages).to include("Textを入力してください") 29 end 30 end 31 end 32end

FactoryBotの設定

Ruby

1FactoryBot.define do 2 factory :article do 3 title {Faker::Name.initials(number: 2)} 4 category_id {rand(1..17)} 5 text {Faker::Lorem.sentence} 6 7 association :user 8 9 after(:build) do |article| 10 article.images.attach(io: File.open('app/assets/images/paper_fibers.png'), filename: 'test_image.jpg') 11 end 12 end 13end

rspecの設定

--require spec_helper --format documentation

rspecのバージョン詳細

rspec-core (3.10.1) rspec-support (~> 3.10.0) rspec-expectations (3.10.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.10.0) rspec-mocks (3.10.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.10.0) rspec-rails (4.0.2) actionpack (>= 4.2) activesupport (>= 4.2) railties (>= 4.2) rspec-core (~> 3.10) rspec-expectations (~> 3.10) rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.10.2)

実行時のtest.log

 (9.3ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483  (10.6ms) SELECT `ar_internal_metadata`.`value` FROM `ar_internal_metadata` WHERE `ar_internal_metadata`.`key` = 'schema_sha1'  (0.2ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483  (0.5ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` ORDER BY `schema_migrations`.`version` ASC  (0.1ms) BEGIN  (0.1ms) ROLLBACK  (0.1ms) BEGIN  (0.1ms) ROLLBACK  (0.1ms) BEGIN  (0.1ms) ROLLBACK  (0.1ms) BEGIN  (0.2ms) ROLLBACK

試したこと

以下のgemを再インストール

  • gem 'factory_bot_rails'
  • gem 'faker'
  • gem 'rspec-rails', '~> 4.0.0'

補足情報(FW/ツールのバージョンなど)

  • mac 11.4
  • Ruby 2.6.5
  • Rails 6.0.3.6
  • mysql2 0.4.4
  • gem 3.0.3

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

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

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

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

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

guest

回答1

0

自己解決

text

1exec rspec spec/models/article_spec.rb

text

1bundle exec rspec spec/models/article_spec.rb

「bundle」が抜けていた為、現象が発生していました。

投稿2021/06/10 06:27

編集2021/06/10 06:29
rixe001

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問