Guard::Minitest

Minitest guard allows to automatically & intelligently launch tests with minitest framework when files are modified.

  • Compatible with MiniTest 1.7.x & 2.x

  • Tested on Ruby 1.8.6, 1.8.7 & 1.9.2.

Install

Please be sure to have guard installed before continue.

Install the gem:

gem install guard-minitest

Add it to your Gemfile (inside test group):

gem 'guard-minitest'

Add guard definition to your Guardfile by running this command:

guard init minitest

Usage

Please read guard usage doc

Guardfile

Minitest guard can be really be adapated to all kind of projects. Please read guard doc for more info about Guardfile DSL.

Standard ruby gems with Minitest::Unit

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

Standard ruby gems with Minitest::Spec

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

Options

You can specify the paths for “test all”, perhaps to skip slow/remote/profiling tests:

guard 'minitest', :all => %w{test/unit test/functional test/integration test/lib}
  ...
end

You can force minitest seed with:

guard 'minitest', :seed => 12345 do
  ...
end

You can set minitest verbose mode with:

guard 'minitest', :verbose => true do
  ...
end

You can colour the test output (via minitest/pride) with:

  guard 'minitest', :colour => true do
    ...
  end
or
  guard 'minitest', :color => true, :rubygems => true do
    ...
  end

(Remark : the "minitest" gem must be installed -> unless you have a Gemfile, you must also specify either :bundler or :rubygems)

You can disable desktop notification with:

guard 'minitest', :notify => false do
  ...
end

You can disable bundler usage to run minitest with:

guard 'minitest', :bundler => false do
  ...
end

You can enable rubygems usage to run minitest (only if bundler is not present or disabale) with:

guard 'minitest', :rubygems => true do
  ...
end

If you use spork-testunit you can enable it with (you’ll have to load it before):

guard 'minitest', :drb => true do
  ...
end

Development

Pull requests are very welcome! Make sure your patches are well tested. Please create a topic branch for every separate change you make.

Authors

Yann Lugrin