module RSpec::Core::Formatters
## Built-in Formatters
-
progress (default) - prints dots for passing examples, ‘F` for failures, `*` for pending
-
documentation - prints the docstrings passed to ‘describe` and `it` methods (and their aliases)
-
html
-
textmate - html plus links to editor
-
json - useful for archiving data for subsequent analysis
The progress formatter is the default, but you can choose any one or more of the other formatters by passing with the ‘–format` (or `-f` for short) command-line option, e.g.
rspec --format documentation
You can also send the output of multiple formatters to different streams, e.g.
rspec --format documentation --format html --out results.html
This example sends the output of the documentation formatter to ‘$stdout`, and the output of the html formatter to results.html.
## Custom Formatters
You can tell RSpec
to use a custom formatter by passing its path and name to the ‘rspec` commmand. For example, if you define MyCustomFormatter in path/to/my_custom_formatter.rb, you would type this command:
rspec --require path/to/my_custom_formatter.rb --format MyCustomFormatter
The reporter calls every formatter with this protocol:
-
‘start(expected_example_count)`
-
zero or more of the following
-
‘example_group_started(group)`
-
‘example_started(example)`
-
‘example_passed(example)`
-
‘example_failed(example)`
-
‘example_pending(example)`
-
‘message(string)`
-
-
‘stop`
-
‘start_dump`
-
‘dump_pending`
-
‘dump_failures`
-
‘dump_summary(duration, example_count, failure_count, pending_count)`
-
‘seed(value)`
-
‘close`
You can either implement all of those methods or subclass ‘RSpec::Core::Formatters::BaseTextFormatter` and override the methods you want to enhance.
@see RSpec::Core::Formatters::BaseTextFormatter
@see RSpec::Core::Reporter