No description, website, or topics provided.
Ruby Shell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin first commit Jul 5, 2015
lib/minitest
test Add on_consistent_failure callback Jun 27, 2017
.gitignore first commit Jul 5, 2015
.travis.yml Bump Ruby versions Apr 2, 2018
CHANGELOG.md bump version Jun 28, 2017
Gemfile first commit Jul 5, 2015
LICENSE.txt
README.md
Rakefile show ruby warning Dec 31, 2016
minitest-retry.gemspec

README.md

Minitest::Retry

Re-run the test when the test fails.

Build Status Gem Version

Installation

Add this line to your application's Gemfile:

gem 'minitest-retry'

And then execute:

$ bundle

Or install it yourself as:

$ gem install minitest-retry

Usage

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

require 'minitest/retry'
Minitest::Retry.use!

Options can be specified to use! method. Can specify options are as follows:

Minitest::Retry.use!(
  retry_count:  3,         # The number of times to retry. The default is 3.
  verbose: true,           # Whether or not to display the message at the time of retry. The default is true.
  io: $stdout,             # Display destination of retry when the message. The default is stdout.
  exceptions_to_retry: []  # List of exceptions that will trigger a retry (when empty, all exceptions will).
)

Callbacks

The on_failure callback is executed each time a test fails:

Minitest::Retry.on_failure do |klass, test_name|
  # code omitted
end

The on_consistent_failure callback is executed when a test consistently fails:

Minitest::Retry.on_consistent_failure do |klass, test_name|
  # code omitted
end

The on_retry callback is executed each time a test is retried:

Minitest::Retry.on_retry do |klass, test_name, retry_count|
  # code omitted
end

Example

Minitest::Retry.use!

class Minitest::RetryTest < Minitest::Test
  def test_fail
    assert false, 'test fail'
  end
end
# Running:

[MinitestRetry] retry 'test_fail' count: 1,  msg: test fail
[MinitestRetry] retry 'test_fail' count: 2,  msg: test fail
[MinitestRetry] retry 'test_fail' count: 3,  msg: test fail
F

Finished in 0.002479s, 403.4698 runs/s, 403.4698 assertions/s.

  1) Failure:
Minitest::RetryTest#test_fail [test/minitest/sample_test.rb:6]:
test fail

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/y-yagi/minitest-retry.

License

The gem is available as open source under the terms of the MIT License.