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()
|
frappe.db.begin()
|
||||||
|
|
||||||
test_suite = unittest.TestSuite()
|
final_test_suite = unittest.TestSuite()
|
||||||
|
|
||||||
if not isinstance(modules, list | tuple):
|
if not isinstance(modules, list | tuple):
|
||||||
modules = [modules]
|
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:
|
for module in modules:
|
||||||
if case:
|
if case:
|
||||||
module_test_cases = unittest.TestLoader().loadTestsFromTestCase(getattr(module, case))
|
test_suite = unittest.TestLoader().loadTestsFromTestCase(getattr(module, case))
|
||||||
else:
|
else:
|
||||||
module_test_cases = unittest.TestLoader().loadTestsFromModule(module)
|
test_suite = unittest.TestLoader().loadTestsFromModule(module)
|
||||||
if tests:
|
if tests:
|
||||||
for each in module_test_cases:
|
for test_case in iterate_suite(test_suite):
|
||||||
for test_case in each.__dict__["_tests"]:
|
if test_case._testMethodName in tests:
|
||||||
if test_case.__dict__["_testMethodName"] in tests:
|
final_test_suite.addTest(test_case)
|
||||||
test_suite.addTest(test_case)
|
|
||||||
else:
|
else:
|
||||||
test_suite.addTest(module_test_cases)
|
final_test_suite.addTest(test_suite)
|
||||||
|
|
||||||
if junit_xml_output:
|
if junit_xml_output:
|
||||||
runner = unittest_runner(verbosity=1 + cint(verbose), failfast=failfast)
|
runner = unittest_runner(verbosity=1 + cint(verbose), failfast=failfast)
|
||||||
|
|
@ -300,7 +306,7 @@ def _run_unittest(
|
||||||
|
|
||||||
frappe.flags.tests_verbose = verbose
|
frappe.flags.tests_verbose = verbose
|
||||||
|
|
||||||
out = runner.run(test_suite)
|
out = runner.run(final_test_suite)
|
||||||
|
|
||||||
if profile:
|
if profile:
|
||||||
pr.disable()
|
pr.disable()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue