Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/y-yagi/minitest-retry
https://github.com/y-yagi/minitest-retry
Last synced: 18 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/y-yagi/minitest-retry
- Owner: y-yagi
- License: mit
- Created: 2015-07-05T07:16:43.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T07:34:37.000Z (7 months ago)
- Last Synced: 2024-04-26T08:38:08.478Z (7 months ago)
- Language: Ruby
- Size: 62.5 KB
- Stars: 51
- Watchers: 5
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Minitest::Retry
Re-run the test when the test fails.
![](https://github.com/y-yagi/minitest-retry/workflows/CI/badge.svg)
[![Gem Version](https://badge.fury.io/rb/minitest-retry.svg)](http://badge.fury.io/rb/minitest-retry)## Installation
Add this line to your application's Gemfile:
```ruby
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:
```ruby
require 'minitest/retry'
Minitest::Retry.use!
```Options can be specified to `use!` method. Can specify options are as follows:
```ruby
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).
methods_to_retry: [], # List of methods that will trigger a retry (when empty, all methods will).
classes_to_retry: [] # List of classes that will trigger a retry (when empty, all classes will).
)
```#### Callbacks
The `on_failure` callback is executed each time a test fails:
```ruby
Minitest::Retry.on_failure do |klass, test_name, result|
# code omitted
end
```The `on_consistent_failure` callback is executed when a test consistently fails:
```ruby
Minitest::Retry.on_consistent_failure do |klass, test_name, result|
# code omitted
end
```The `on_retry` callback is executed each time a test is retried:
```ruby
Minitest::Retry.on_retry do |klass, test_name, retry_count, result|
# code omitted
end
```## Example
```ruby
Minitest::Retry.use!
class Minitest::RetryTest < Minitest::Test
def test_fail
assert false, 'test fail'
end
end
``````console
# 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
FFinished 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](http://opensource.org/licenses/MIT).