Guard::Minitest allows to automatically & intelligently launch tests with the minitest framework when files are modified.
- Compatible with minitest >= 2.1 (optimal support for 5.x).
- Tested against Ruby 1.8.7, 1.9.3, 2.0.0, JRuby (1.8 mode & 1.9 mode) & Rubinius (1.8 mode & 1.9 mode).
Please be sure to have Guard installed before continue.
The simplest way to install Guard::Minitest is to use Bundler.
Add Guard::Minitest to your Gemfile
:
group :development do
gem 'guard-minitest'
end
and install it by running Bundler:
$ bundle
Add guard definition to your Guardfile by running the following command:
guard init minitest
Please read Guard usage doc
Guard::Minitest can be really adapated to all kind of projects. Please read guard doc for more info about Guardfile DSL.
guard :minitest do
watch(%r{^test/(.*)\/?test_(.*)\.rb})
watch(%r{^lib/(.*/)?([^/]+)\.rb}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
watch(%r{^test/test_helper\.rb}) { 'test' }
end
guard :minitest do
watch(%r{^spec/(.*)_spec\.rb})
watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^spec/spec_helper\.rb}) { 'spec' }
end
:all_on_start => false # run all tests in group on startup, default: true
:cli => '--test' # pass arbitrary Minitest CLI arguments, default: ''
:test_folders => ['tests'] # specify an array of paths that contain test files, default: %w[test spec]
:test_file_patterns => true # specify an array of patterns that test files must match in order to be run, default: %w[*_test.rb test_*.rb *_spec.rb]
:spring => true # enable spring support, default: false
:zeus => true # enable zeus support; default: false
:drb => true # enable DRb support, default: false
:bundler => false # don't use "bundle exec" to run the minitest command, default: true
:rubygems => true # require rubygems when run the minitest command (only if bundler is disabled), default: false
You can change the default location of test files using the :test_folders
option and pattern of test files using the :test_file_patterns
option:
guard :minitest, :test_folders => 'test/unit', :test_file_patterns => '*_test.rb' do
# ...
end
You can pass any of the standard MiniTest CLI options using the :cli
option:
guard :minitest, :cli => '--seed 123456 --verbose' do
# ...
end
Spring is supported (Ruby 1.9.X / Rails 3.2+ only), but you must enable it:
guard :minitest, :spring => true do
# ...
end
Zeus is supported, but you must enable it. Please note that notification are currently disabled when using Zeus, if you're interested in adding notification support for Zeus, please open a new issue.
guard :minitest, :zeus => true do
# ...
end
Spork / spork-testunit is supported, but you must enable it:
guard :minitest, :drb => true do
# ...
end
- Add notification support when using
zeus
.
Pull requests are very welcome! Please try to follow these simple rules if applicable:
- Please create a topic branch for every separate change you make.
- Make sure your patches are well tested. All specs run by Travis CI must pass.
- Update the README.
- Please do not change the version number.
For questions please join us in our Google group or on
#guard
(irc.freenode.net).