fix: test module + test case + test method name
This commit is contained in:
parent
349e9c67f3
commit
97a9b604a3
1 changed files with 15 additions and 9 deletions
|
|
@ -266,23 +266,29 @@ def _run_unittest(
|
|||
):
|
||||
frappe.db.begin()
|
||||
|
||||
test_suite = unittest.TestSuite()
|
||||
final_test_suite = unittest.TestSuite()
|
||||
|
||||
if not isinstance(modules, list | tuple):
|
||||
modules = [modules]
|
||||
|
||||
def iterate_suite(suite):
|
||||
for test in suite:
|
||||
if isinstance(test, unittest.TestSuite):
|
||||
yield from iterate_suite(test)
|
||||
elif isinstance(test, unittest.TestCase):
|
||||
yield test
|
||||
|
||||
for module in modules:
|
||||
if case:
|
||||
module_test_cases = unittest.TestLoader().loadTestsFromTestCase(getattr(module, case))
|
||||
test_suite = unittest.TestLoader().loadTestsFromTestCase(getattr(module, case))
|
||||
else:
|
||||
module_test_cases = unittest.TestLoader().loadTestsFromModule(module)
|
||||
test_suite = unittest.TestLoader().loadTestsFromModule(module)
|
||||
if tests:
|
||||
for each in module_test_cases:
|
||||
for test_case in each.__dict__["_tests"]:
|
||||
if test_case.__dict__["_testMethodName"] in tests:
|
||||
test_suite.addTest(test_case)
|
||||
for test_case in iterate_suite(test_suite):
|
||||
if test_case._testMethodName in tests:
|
||||
final_test_suite.addTest(test_case)
|
||||
else:
|
||||
test_suite.addTest(module_test_cases)
|
||||
final_test_suite.addTest(test_suite)
|
||||
|
||||
if junit_xml_output:
|
||||
runner = unittest_runner(verbosity=1 + cint(verbose), failfast=failfast)
|
||||
|
|
@ -300,7 +306,7 @@ def _run_unittest(
|
|||
|
||||
frappe.flags.tests_verbose = verbose
|
||||
|
||||
out = runner.run(test_suite)
|
||||
out = runner.run(final_test_suite)
|
||||
|
||||
if profile:
|
||||
pr.disable()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue