#Licensed to the Apache Software Foundation (ASF) under one #or more contributor license agreements. See the NOTICE file #distributed with this work for additional information #regarding copyright ownership. The ASF licenses this file #to you under the Apache License, Version 2.0 (the #"License"); you may not use this file except in compliance #with the License. You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 #Unless required by applicable law or agreed to in writing, software #distributed under the License is distributed on an "AS IS" BASIS, #WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #See the License for the specific language governing permissions and #limitations under the License. import unittest, os, sys, re myPath = os.path.realpath(sys.argv[0]) rootDirectory = re.sub("/testing/.*", "", myPath) testingDir = os.path.join(rootDirectory, "testing") sys.path.append(rootDirectory) from testing.lib import printSeparator, printLine moduleList = [] allList = [] excludes = [ ] # Build a module list by scanning through all files in testingDir for file in os.listdir(testingDir): if(re.search(r".py$", file) and re.search(r"^test", file)): # All .py files with names starting in 'test' module = re.sub(r"^test","",file) module = re.sub(r".py$","",module) allList.append(module) if module not in excludes: moduleList.append(module) printLine("All testcases - %s" % allList) printLine("Excluding the testcases - %s" % excludes) printLine("Executing the testcases - %s" % moduleList) testsResult = 0 # Now import each of these modules and start calling the corresponding #testSuite methods for moduleBaseName in moduleList: try: module = "testing.test" + moduleBaseName suiteCaller = "Run" + moduleBaseName + "Tests" printSeparator() printLine("Running %s" % suiteCaller) # Import the corresponding test cases module imported_module = __import__(module , fromlist=[suiteCaller] ) # Call the corresponding suite method now testRes = getattr(imported_module, suiteCaller)() testsResult = testsResult + testRes printLine("Finished %s. TestSuite Result : %s\n" % \ (suiteCaller, testRes)) except ImportError, i: # Failed to import a test module printLine(i) testsResult = testsResult + 1 pass except AttributeError, n: # Failed to get suiteCaller from a test module printLine(n) testsResult = testsResult + 1 pass except Exception, e: # Test module suiteCaller threw some exception printLine("%s failed. \nReason : %s" % (suiteCaller, e)) printLine("Skipping %s" % suiteCaller) testsResult = testsResult + 1 pass if testsResult != 0: printSeparator() printLine("Total testcases with failure or error : %s" % testsResult) sys.exit(testsResult)