🖥
Ruby + Rspec – テスト失敗のエラー時にアフターフック処理して赤文字でカスタムメッセージを標準出力する ( example単位
after each の中で exception を参照すれば検証失敗エラーのときだけに何らかの処理ができる
通常Rspecはどのように検証が失敗したかを丁寧に表示してくれるが
テストの構成上、標準出力で詳細が分かりづらい場合はアフターフックを仕込んで、何か標準出力させておくとデバッグがしやすいかもしれない
( たとえば Rails の Requestのテストの時に response body を標準出力するなど )
例
describe 'Test' do
after(:each) do |example|
if example.exception
puts "\033[31m" # 赤字開始 - 標準出力で文字色を付ける
puts example.full_description # Test It Description
puts example.description # It Description
puts example.location # /path/to/spec.rb:15
puts 'something' # 何か失敗時に見たいものを出力
puts "\033[0m" # 赤字終了
end
end
it 'It Description' do
expect(true).to eq false
end
end
exampleの中身
RSpec::Core::Example
のインスタンス
puts example
# <RSpec::Core::Example "is expected to eq false">
example.location
失敗したファイル・ファイル行数が分かる
例:
/path/to/spec.rb:15
example.full_description
description や it の説明を合わせたフルの説明が入るようだ
example.description
it の説明部分が入るようだ
example.exception の中身
よく見るRspecの実行結果(失敗時)が入っているようだ
puts example.exception
# expected: false
# got: true
#
# (compared using ==)
#
# Diff:
# @@ -1 +1 @@
# -false
# +true
#
# => nil
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2023-12-09
Discussion