Build Status Documentation Status Inline docs Maintainability Test Coverage

RSpec TAP Formatters provides four different TAP 13 format style with a proper nested display of example groups and includes stats for the total number of passed, failed, and pending tests per example group. The supported formats are:

  1. RSpec::TAP::Formatters::Default
  2. RSpec::TAP::Formatters::Compact
  3. RSpec::TAP::Formatters::Flat
  4. RSpec::TAP::Formatters::FlatCompact

Each formatter respects the color configuration for the execution and only prints colored output when enabled. However, writing to a file will never use colors.

When writing the report to a file, each formatter will print progress status on the standard output:

  • . denotes a passing example.
  • F denotes a failing example.
  • * denotes a pending example.

Sample report for string_spec.rb using RSpec::TAP::Formatters::Default format:

TAP version 13
# test: String {
  # group: #present? {
    # group: when whitespaces and other characters {
      ok 1 - returns true
      # tests: 1, passed: 1
    # group: when nil {
      not ok 1 - returns false
        location: "./resources/string_spec.rb:8"
        error: |-
          Failure/Error: expect(string.present?).to eq(false)
            undefined method `present?' for nil:NilClass
        backtrace: "./resources/string_spec.rb:9:in `block (4 levels) in <top (required)>'"
      # tests: 1, failed: 1
    # group: when whitespaces only {
      ok 1 - returns false
      # tests: 1, passed: 1
    # tests: 3, passed: 2, failed: 1
  # tests: 3, passed: 2, failed: 1
# tests: 3, passed: 2, failed: 1
# duration: 0.026471 seconds
# seed: 27428

You can check the reports for other formats here.


Installation is pretty standard:

gem install rspec-tap-formatters

You can install using bundler also but do not require it in Gemfile. Make sure to use it as a test dependency:

group :test do
  # other gems
  gem 'rspec-tap-formatter', '~> 0.1.0', require: false


You can specify the format as the command argument:

rspec --format RSpec::TAP::Formatters::Default

To write to file, provide the --out argument:

rspec --format RSpec::TAP::Formatters::Default --out report.tap

You can also configure the .rspec file:

# other configurations
--format RSpec::TAP::Formatters::Default
--out report.tap


Read more about TAP specifications and supported formats in the official docs.


RSpec TAP Formatters supports MRI 2.3+ and RSpec 3.


The changelog is available here.

Copyright (c) 2019 Abhimanyu Singh. See for further details.