Focusing autotest
August 24th, 2008
The usual autotest workflow goes something like this:
- Edit and save
- Autotest runs associated specs
- Are there failures? Fix and start over
- Autotest runs the entire suite
Sometimes though, you want autotest to just ignore most of your specs and focus on a few specs.
Last week, while Kevin, Rick, and Yossef (OG) were here, they shared an autotest tweak that does exactly that.
The tweak allows you to specify a regular expression to limit the files which autotest watches; for example, to autotest only files matching *user*.rb you would (atest is an alias):
% atest user
Here is the (lightly modified) code to do this; in your .autotest file add:
if ENV['AUTOTEST'] and not ENV['AUTOTEST'].empty?
only_these_files_re = Regexp.new(ENV['AUTOTEST'])
Autotest.send(:alias_method, :real_find_files, :find_files)
Autotest.send(:define_method, :find_files) do |*args|
real_find_files.reject do |k, v|
!only_these_files_re.match(k)
end
end
end
And in your .bash_profile add:
# Autotest
function fn_autotest() {
AUTOTEST=$1 autotest
}
alias atest='fn_autotest'
Now use the alias to invoke autotest. For standard autotest behavior:
% atest
To limit what autotest is watching, pass a regular expression (which can be a simple string):
% atest user.*html
Leave a Reply