test.py 619 B

123456789101112131415161718
  1. #!/usr/bin/env python
  2. import os, re, sys, unittest
  3. TESTS_DIR = 'tests'
  4. matches = [re.match('^(test_(\w+)).\py$', f) for f in os.listdir(TESTS_DIR)]
  5. suite = unittest.TestSuite()
  6. loader = unittest.TestLoader()
  7. for match in filter(None, matches):
  8. modulename, testname = match.groups()
  9. classname = re.sub('(?:^|_)([a-z])', lambda m: m.group(1).upper(),
  10. testname) + 'Test'
  11. mod = __import__(TESTS_DIR + '.' + modulename, globals(), locals(),
  12. classname)
  13. suite.addTests(loader.loadTestsFromTestCase(getattr(mod, classname)))
  14. unittest.TextTestRunner().run(suite)