Hacking green bar color output into Autotest
update: You don't need to do this hack anymore - the RedGreen plugin is builtin into autotest with the latest versions.
A much welcome upgrade of the indispensable autotest recently came out which speeds things up greatly, but the output was still plain test_unit output. There are now hooks to add plugins to add widgets or whatever crazy output you want, but all I wanted was a green or red bar in the console. Taking some help from RedGreen by Pat Eyler for the escape chars, here's out make your autotest output a bit more feedbackie:
add this to the utility section of autotest.rb (yes, just hack the gem - its a minor change and the codebase is simple enough):
-
BAR = "=" * 80
-
-
# filter output for colorized green/red bar
-
def filter_output(results)
-
filtered = ""
-
results.each do |line|
-
-
if line =~ /\d+ tests, \d+ assertions, 0 failures, 0 errors/
-
line = "\e[32m#{BAR}\n#{$&}\e[0m\n\n"
-
elsif line =~ /\d+ tests, \d+ assertions, (\d+) failures, (\d+) errors/
-
if $1 != 0 || $2 != 0
-
line = "\e[31m#{BAR}\n#{$&}\e[0m\n\n"
-
end
-
end
-
filtered <<line
-
end
-
filtered
-
end
Then change the method "run_tests" to call filter output:
-
def run_tests
-
....
-
@results = `#{cmd}`
-
hook :ran_command
-
puts filter_output(@results)
-
....
And you'll have output like this:


11 Comments