Now that I finally understand that '$:' in '$:.unshift' is a variable reference, and that 'require ...' is literally a method call loading the file, I realized why there are no utilities in ruby to load all the test cases for you:
create a file 'ts_all.rb' at the root directory of the test with the following content:
# test/unit module that will pick up all loaded testcass automatically
require 'test/unit'
# find where the root directory of the tests is
root = File.dirname(__FILE__)
# do a name matching and iterate through all tc_*.rb files
Dir.glob("#{root}/**/tc_*.rb") do |file|
# load the file (assuming naming convention)
require "#{file}"
end
That is it! Executing 'ruby ts_all.rb' will just run all the tests.
Monday, August 07, 2006
Subscribe to:
Post Comments (Atom)
1 comment:
Good one. thanks for sharing.
I was doing something similar but using dynamic include/require in the master test case and then calling the tests on the fly.
thanks again.
Post a Comment