Skip to content


Subversion checkout URL

You can clone with
Download ZIP
:page_with_curl: Create customizable MiniTest output formats.

Merge pull request #183 from vadviktor/vadviktor-patch-htmlreporter-o…


HtmlReporter: adding option to change output filename
latest commit 2f82fd1b81
@os97673 os97673 authored

minitest-reporters - create customizable Minitest output formats

Join the chat at Gem Version Build Status

Death to haphazard monkey-patching! Extend Minitest through simple hooks.


gem install minitest-reporters


In your test_helper.rb file, add the following lines:

require "minitest/reporters"

This will swap out the Minitest runner to the custom one used by minitest-reporters and use the correct reporters for Textmate, Rubymine, and the console. If you would like to write your own reporter, just include Minitest::Reporter and override the methods you'd like. Take a look at the provided reporters for examples.

Don't like the default progress bar reporter?


Want to use multiple reporters?

Minitest::Reporters.use! [,]

The following reporters are provided:

Minitest::Reporters::DefaultReporter  # => Redgreen-capable version of standard Minitest reporter
Minitest::Reporters::SpecReporter     # => Turn-like output that reads like a spec
Minitest::Reporters::ProgressReporter # => Fuubar-like output with a progress bar
Minitest::Reporters::RubyMateReporter # => Simple reporter designed for RubyMate
Minitest::Reporters::RubyMineReporter # => Reporter designed for RubyMine IDE and TeamCity CI server
Minitest::Reporters::JUnitReporter    # => JUnit test reporter designed for JetBrains TeamCity

Options can be passed to these reporters at construction-time, e.g. to force color output from DefaultReporter:

Minitest::Reporters.use! [ => true)]


Default Reporter

Default Reporter

Spec Reporter

Spec Reporter

Progress Reporter

Progress Reporter


If you are using minitest-reporters with ActiveSupport 3.x, make sure that you require ActiveSupport before invoking Minitest::Reporters.use!. Minitest-reporters fixes incompatibilities caused by monkey patches in ActiveSupport 3.x. ActiveSupport 4.x is unaffected.

Rails Backtrace Filtering and Custom Backtrace Filtering

Minitest lets you configures your own, custom backtrace filter via Minitest.backtrace_filter=. If you're using Rails, then by default Minitest.backtrace_filter is a filter designed specially for Rails.

But minitest-reporters overwrites Minitest.backtrace_filter by default. That means it will overwrite your custom filter and Rails' default filter. (You'll know this is happening if you see overly long or otherwise unexpected backtraces.)

To avoid that, you must manually tell minitest-reporters which filter to use. In Rails, do this in test_helper.rb:


The third parameter to .use!, in this case Minitest.backtrace_filter, should be a filter object. In the above example, you're telling minitest-reporters to use the filter that Rails has already set.

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, but do not mess with the Rakefile. If you want to have your own version, that is fine but bump the version in a commit by itself in another branch so I can ignore it when I pull.
  • Send me a pull request. Bonus points for git flow feature branches.



Minitest-reporters is licensed under the MIT License. See LICENSE for details.

Something went wrong with that request. Please try again.