Guard::Test allows to automatically & intelligently launch tests when files are modified or created.
-
Compatible with Test::Unit 2.1.1.
-
Tested on Ruby 1.8.6, 1.8.7, REE & 1.9.2.
Please be sure to have guard installed before continue.
Install the gem:
gem install guard-test
Add it to your Gemfile (inside test group):
gem 'guard-test'
Add guard definition to your Guardfile by running this command:
guard init test
Please read guard usage doc.
Guard::Test can be adapted to many kind of projects. Please read guard doc for more info about Guardfile DSL.
guard 'test' do watch('^lib/(.*)\.rb') { |m| "test/lib/#{m[1]}_test.rb" } watch('^test/(.*)_test.rb') watch('^test/test_helper.rb') { "test" } end
guard 'test' do watch('^app/models/(.*)\.rb') { |m| "test/unit/#{m[1]}_test.rb" } watch('^app/controllers/(.*)\.rb') { |m| "test/functional/#{m[1]}_test.rb" } watch('^app/controllers/application_controller.rb') { "test/functional" } watch('^app/controllers/application_controller.rb') { "test/integration" } watch('^app/views/(.*)\.rb') { "test/integration" } watch('^lib/(.*)\.rb') { |m| "test/lib/#{m[1]}_test.rb" } watch('^test/(.*)_test.rb') watch('^test/factories.rb') { "test/unit" } watch('^test/test_helper.rb') { "test" } end
Guard::Test allows you to choose between two different runners (Guard::Test’s runners are inherited from Test::Unit’s console runner):
-
'default'
: Display tests results as they happen, with different chars (‘.’ for pass, ‘F’ for fail, ‘E’ for error) and print failures/errors messages & backtraces when all the tests are finished. Obviously, this is the guard-test default. -
'fastfail'
: Display tests results as they happen and print failures/errors messages & backtraces immediately.
Set the desired runner by passing the :runner
option to the guard
method:
guard 'test', :runner => 'fastfail' do ... end
-
Source hosted on GitHub: github.com/guard/guard-test
-
Report issues/Questions/Feature requests on GitHub Issues: github.com/guard/guard-test/issues
Pull requests are very welcome! Make sure your patches are well tested. Please create a topic branch for every separate change you make.
Many thanks to Thibaud Guillaume-Gentil for creating the excellent Guard gem.