1 """Regression testing framework
3 This module will search for scripts in the same directory named
4 XYZtest.py. Each such script should be a test suite that tests a
5 module through PyUnit. (As of Python 2.1, PyUnit is included in
6 the standard library as "unittest".) This script will aggregate all
7 found test suites into one big test suite and run them all at once.
10 import sys, os, re, unittest
12 def printAndRun( module ):
13 print "Running tests from module " + module.__name__;
14 return unittest.defaultTestLoader.loadTestsFromModule( module )
17 path = os.path.abspath(os.path.dirname(sys.argv[0]))
18 files = os.listdir(path)
19 test = re.compile("test.py$", re.IGNORECASE)
20 files = filter(test.search, files)
21 filenameToModuleName = lambda f: os.path.splitext(f)[0]
22 moduleNames = map(filenameToModuleName, files)
23 modules = map(__import__, moduleNames)
24 # load = unittest.defaultTestLoader.loadTestsFromModule
26 return unittest.TestSuite(map(load, modules))
28 if __name__ == "__main__":
29 unittest.main(defaultTest="regressionTest")