カスタムフォーマッター
RSpecには汎用の出力フォーマッターが付属しています。--format
コマンドラインオプションを使用して、RSpecにどのフォーマッターを使用するかを指定できます。
しかし、RSpecの組み込みの出力フォーマッターでは必要なすべての機能を提供していない場合、独自のカスタムフォーマッターを作成し、それをRSpecに使用することができます。最も簡単な方法は、RSpecのBaseTextFormatter
をサブクラス化し、変更したいメソッドだけをオーバーライドすることです。
カスタムフォーマッター
次の内容で「custom_formatter.rb」という名前のファイルがあるとします:
class CustomFormatter
# This registers the notifications this formatter supports, and tells
# us that this was written against the RSpec 3.x formatter API.
RSpec::Core::Formatters.register self, :example_started
def initialize(output)
@output = output
end
def example_started(notification)
@output << "example: " << notification.example.description
end
end
また、「example_spec.rb」という名前のファイルもあるとします:
RSpec.describe "my group" do
specify "my example" do
end
end
次のコマンドを実行すると:
rspec example_spec.rb --require ./custom_formatter.rb --format CustomFormatter
出力には「example: my example」というテキストが含まれているはずです。
また、終了ステータスは0であるはずです。