mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.9 KiB
56 lines
1.9 KiB
#!/usr/bin/env python |
|
|
|
# This script uses the unittest module to find all the tests in the |
|
# same directory and run them. |
|
# |
|
# 2009-01-23, Roman Stanchak (rstanchak@gmail.com) |
|
# |
|
# |
|
# For a test to be detected and run by this script, it must |
|
# 1. Use unittest |
|
# 2. define a suite() method that returns a unittest.TestSuite containing |
|
# the tests to be run |
|
|
|
import cvtestutils |
|
import unittest |
|
import types |
|
import os |
|
import imp |
|
|
|
def suites( dirname ): |
|
suite_list=[] |
|
|
|
for fn in os.listdir( dirname ): |
|
# tests must be named test_*.py or *_tests.py |
|
if not ( fn.lower().endswith('.py') and |
|
(fn.lower().startswith('test_') or fn.lower().endswith('_tests.py')) ): |
|
continue |
|
|
|
module_name = fn[0:-3] |
|
fullpath = os.path.realpath( dirname + os.path.sep + fn ) |
|
test_module = None |
|
try: |
|
test_module = imp.load_source( module_name, fullpath ) |
|
except: |
|
print "Error importing python code in '%s'" % fn |
|
if test_module: |
|
try: |
|
suite_list.append( test_module.suite() ) |
|
print "Added tests from %s" % fn |
|
except: |
|
print "%s does not contain a suite() method, skipping" % fn |
|
return unittest.TestSuite(suite_list) |
|
|
|
|
|
def col2( c1, c2, w=72 ): |
|
return "%s%s" % (c1, c2.rjust(w-len(c1))) |
|
|
|
if __name__ == "__main__": |
|
print '----------------------------------------------------------------------' |
|
print 'Searching for tests...' |
|
print '----------------------------------------------------------------------' |
|
suite = suites( os.path.dirname( os.path.realpath(__file__) )) |
|
print '----------------------------------------------------------------------' |
|
print 'Running tests...' |
|
print '----------------------------------------------------------------------' |
|
unittest.TextTestRunner(verbosity=2).run(suite)
|
|
|