test.py 626 B

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