我们从Python开源项目中,提取了以下20个代码示例,用于说明如何使用unittest.defaultTestLoader()。
def __init__(self, module='__main__', defaultTest=None, argv=None, testRunner=DataTestRunner, testLoader=_defaultTestLoader, exit=True, verbosity=1, failfast=None, catchbreak=None, buffer=None, ignore=False): self.ignore = ignore _TestProgram.__init__(self, module=module, defaultTest=defaultTest, argv=argv, testRunner=testRunner, testLoader=testLoader, exit=exit, verbosity=verbosity, failfast=failfast, catchbreak=catchbreak, buffer=buffer)
def discover_and_run_tests(): import os import sys import unittest # get setup.py directory setup_file = sys.modules['__main__'].__file__ setup_dir = os.path.abspath(os.path.dirname(setup_file)) # use the default shared TestLoader instance test_loader = unittest.defaultTestLoader # use the basic test runner that outputs to sys.stderr test_runner = unittest.TextTestRunner() # automatically discover all tests # NOTE: only works for python 2.7 and later test_suite = test_loader.discover(setup_dir) # run the test suite test_runner.run(test_suite)
def MakeTestSuite(): # Test C++ implementation import unittest import google.protobuf.pyext.descriptor_cpp2_test as descriptor_cpp2_test import google.protobuf.pyext.message_factory_cpp2_test \ as message_factory_cpp2_test import google.protobuf.pyext.reflection_cpp2_generated_test \ as reflection_cpp2_generated_test loader = unittest.defaultTestLoader suite = unittest.TestSuite() for test in [ descriptor_cpp2_test, message_factory_cpp2_test, reflection_cpp2_generated_test]: suite.addTest(loader.loadTestsFromModule(test)) return suite
def test_mock_patch_cleanup_on_teardown(self): # create an object and save its reference class Sub(object): pass obj = Sub() obj.value = obj.backup = object() # patch the object mock.patch.object(obj, 'value').start() self.assertNotEqual(obj.backup, obj.value) # run a test case loader = unittest.defaultTestLoader suite = loader.loadTestsFromTestCase(self.FakeTestCase) suite.run(unittest.TestResult()) # check that mock patches are cleaned up self.assertEqual(obj.backup, obj.value)
def test_suite_catches_fixture_fail(self): """When a fixture fails in start_fixture it should fail the first test in the suite and skip the others. """ loader = unittest.defaultTestLoader result = unittest.TestResult() test_data = {'fixtures': ['FakeFixture'], 'tests': [{'name': 'alpha', 'GET': '/'}, {'name': 'beta', 'GET': '/'}]} test_suite = suitemaker.test_suite_from_dict( loader, 'foo', test_data, '.', 'localhost', 80, sys.modules[__name__], None) test_suite.run(result) self.assertEqual(2, len(result.skipped)) self.assertEqual(1, len(result.errors)) errored_test, trace = result.errors[0] self.assertIn('foo_alpha', str(errored_test)) self.assertIn(VALUE_ERROR, trace)
def run_suite(handle, handler_objects, host, port, prefix, force_ssl=False, failfast=False, data_dir='.', verbosity=False, name='input'): """Run the tests from the YAML in handle.""" data = utils.load_yaml(handle) if force_ssl: if 'defaults' in data: data['defaults']['ssl'] = True else: data['defaults'] = {'ssl': True} if verbosity: if 'defaults' in data: data['defaults']['verbose'] = verbosity else: data['defaults'] = {'verbose': verbosity} loader = unittest.defaultTestLoader test_suite = suitemaker.test_suite_from_dict( loader, name, data, data_dir, host, port, None, None, prefix=prefix, handlers=handler_objects, test_loader_name='gabbi-runner') result = ConciseTestRunner( verbosity=2, failfast=failfast).run(test_suite) return result.wasSuccessful()
def main(spd_file=None, module='__main__', defaultTest=None, argv=None, testRunner=None, testLoader=unittest.defaultTestLoader, impl=None): if spd_file is None: return rhunittest.RHTestProgram(module, defaultTest, argv, testRunner, impl) else: return ScaComponentTestProgram(spd_file, module, defaultTest, argv, testRunner, testLoader, impl)
def __init__(self, module='__main__', defaultTest=None, argv=None, testRunner=DataTestRunner, testLoader=_defaultTestLoader, exit=True, ignore=False): self.ignore = ignore _TestProgram.__init__(self, module=module, defaultTest=defaultTest, argv=argv, testRunner=testRunner, testLoader=testLoader, exit=exit)
def __init__(self, module='__main__', defaultTest=None, argv=None, testRunner=DataTestRunner, testLoader=_defaultTestLoader, exit=True, ignore=False): self.exit = exit # <- 2.6 does not handle exit argument. self.ignore = ignore _TestProgram.__init__(self, module=module, defaultTest=defaultTest, argv=argv, testRunner=testRunner, testLoader=testLoader)
def additional_tests(): suite = unittest.TestSuite() '''Accumulate all unit test cases.''' loader = unittest.defaultTestLoader ## some test cases use the syntax that Python 2 doesn't support. additional_names = [] if sys.version_info[0] >= 3: additional_names.append('examples') from tests.python_3_only.test_generator import ParserGeneratorWithReturnTest suite.addTest(loader.loadTestsFromTestCase(ParserGeneratorWithReturnTest)) for name in additional_names: suite.addTests(loader.discover(name)) return suite
def additional_tests(): setup_file = sys.modules['__main__'].__file__ setup_dir = os.path.abspath(os.path.dirname(setup_file)) test_dir = os.path.join(setup_dir, 'tests') test_suite = unittest.defaultTestLoader.discover(test_dir) blacklist = [] if '/home/travis' in __file__: # Skip some tests that fail on travis-ci blacklist.append('test_command') return exclude_tests(test_suite, blacklist)
def setUp(self): super(DriverTest, self).setUp() self.loader = unittest.defaultTestLoader self.test_dir = os.path.join(os.path.dirname(__file__), TESTS_DIR)
def load_tests(loader, standard_tests, pattern): if pattern == __name__: pattern = None suite = unittest.TestSuite() for test_module in [ test_api, test_shelf, test_guillotine, test_maximalrectangles, test_skyline, ]: tests = (unittest.defaultTestLoader .loadTestsFromModule(test_module, pattern=pattern)) suite.addTests(tests) return suite
def build_suite(test_labels=None): suite = unittest.TestSuite() test_loader = unittest.defaultTestLoader test_labels = test_labels or ['.'] discover_kwargs = {} for label in test_labels: kwargs = discover_kwargs.copy() tests = None label_as_path = os.path.abspath(label) # if a module, or "module.ClassName[.method_name]", just run those if not os.path.exists(label_as_path): tests = test_loader.loadTestsFromName(label) elif os.path.isdir(label_as_path): top_level = label_as_path while True: init_py = os.path.join(top_level, '__init__.py') if os.path.exists(init_py): try_next = os.path.dirname(top_level) if try_next == top_level: # __init__.py all the way down? give up. break top_level = try_next continue break kwargs['top_level_dir'] = top_level if not (tests and tests.countTestCases()) and is_discoverable(label): # Try discovery if path is a package or directory tests = test_loader.discover(start_dir=label, **kwargs) # Make unittest forget the top-level dir it calculated from this # run, to support running tests from two different top-levels. test_loader._top_level_dir = None suite.addTests(tests) return suite
def list_tags(option, opt, value, parser, *args, **kwargs): alltags = [] testsuites = [] testdir, testfiles = gettestfiles(os.path.join (os.path.dirname(__file__), "..")) testloader = unittest.defaultTestLoader for test in testfiles: try: testmod = os.path.splitext(test)[0] fp, pathname, descr = imp.find_module(testmod, [testdir, ]) package = imp.load_module(testmod, fp, pathname, descr) try: testsuites.append(loadtests_frompkg(package, testloader)) except: printerror() except: pass for suite in testsuites: for test in suite: if hasattr(test, "__tags__"): tags = getattr(test, "__tags__") for tag in tags: if tag not in alltags: alltags.append(tag) print(alltags) sys.exit()
def test_suite(): """Return tests suite.""" test_loader = unittest.defaultTestLoader return test_loader.discover('tests', pattern='test*.py')
def _do_test(self, filename): token = self.os_admin.auth_provider.get_token() url = self.os_admin.auth_provider.base_url( {'service': CONF.metric.catalog_type, 'endpoint_type': CONF.metric.endpoint_type}) parsed_url = urlparse.urlsplit(url) prefix = parsed_url.path.rstrip('/') # turn it into a prefix if parsed_url.scheme == 'https': port = 443 require_ssl = True else: port = 80 require_ssl = False host = parsed_url.hostname if parsed_url.port: port = parsed_url.port os.environ["GNOCCHI_SERVICE_TOKEN"] = token os.environ["GNOCCHI_AUTHORIZATION"] = "not used" with open(os.path.join(TEST_DIR, filename)) as f: suite_dict = utils.load_yaml(f) suite_dict.setdefault('defaults', {})['ssl'] = require_ssl test_suite = suitemaker.test_suite_from_dict( loader=unittest.defaultTestLoader, test_base_name="gabbi", suite_dict=suite_dict, test_directory=TEST_DIR, host=host, port=port, fixture_module=None, intercept=None, prefix=prefix, handlers=runner.initialize_handlers([]), test_loader_name="tempest") # NOTE(sileht): We hide stdout/stderr and reraise the failure # manually, tempest will print it itself. with open(os.devnull, 'w') as stream: result = unittest.TextTestRunner( stream=stream, verbosity=0, failfast=True, ).run(test_suite) if not result.wasSuccessful(): failures = (result.errors + result.failures + result.unexpectedSuccesses) if failures: test, bt = failures[0] name = test.test_data.get('name', test.id()) msg = 'From test "%s" :\n%s' % (name, bt) self.fail(msg) self.assertTrue(result.wasSuccessful())
def get_cases(case_ini='testcase'): testSuite=unittest.TestSuite() loader=unittest.defaultTestLoader # info=Initialization() inital=appium_init.inital cases_info=inital.get_cases_info(case_ini) # print cases_info.get('case_discover') if cases_info=={}: inital.logger.info('get_cases | plz check appium_config.ini') return None #????????????? elif cases_info.get('load_all') in ['Y','y','*']: cases_list=loader.discover(cases_info.get('cases_path'),pattern='case_*.py') for module in cases_list: testSuite.addTests(module) inital.logger.info("get_cases | load all cases!") return testSuite elif cases_info.get('case_module')==None and cases_info.get('case_discover')==None: print('cases_list is null,plz input cases in appium_config.ini') return None elif cases_info.get('case_module')!=None: modules=cases_info.get('case_module').split(',') for module in modules: if module.startswith('#')==False: module='test_cases.'+module cases_list=loader.loadTestsFromModule(__import__(module,fromlist=True)) testSuite.addTests(cases_list) if cases_info.get('case_discover')!=None: if ',' not in cases_info.get('case_discover'): discover_list=[] discover_list.append(cases_info.get('case_discover')) else: discover_list=cases_info.get('case_discover').split(',') for discover in discover_list: if discover.startswith('#')==False: cases_list = loader.discover(cases_info.get('cases_path'), pattern=discover) for module in cases_list: testSuite.addTests(module) cases=testSuite.countTestCases() inital.logger.info('get_cases | load case number is %d' %cases) return testSuite