diff options
-rwxr-xr-x | solenv/gbuild/uitest-failed-default.sh | 5 | ||||
-rw-r--r-- | uitest/test_main.py | 14 |
2 files changed, 16 insertions, 3 deletions
diff --git a/solenv/gbuild/uitest-failed-default.sh b/solenv/gbuild/uitest-failed-default.sh index 1aeb8c358b99..c4555d0d069d 100755 --- a/solenv/gbuild/uitest-failed-default.sh +++ b/solenv/gbuild/uitest-failed-default.sh @@ -15,7 +15,10 @@ To rerun just this failed test without all others, use: make UITest_$2 Or to run just a specific test case method, use: - make UITest_$2 UITEST_TEST_NAME="package.ClassName.methodName" + make UITest_$2 UITEST_TEST_NAME="Module.ClassName.methodName" +where + Module - the name of the python file (without the .py extension) + Class - is the name in the "class Class" declaration Or to do interactive debugging, put a long sleep in the beginning of the .py uitest file, and attach gdb to the running soffice process. diff --git a/uitest/test_main.py b/uitest/test_main.py index ec4f2071f102..934b27790961 100644 --- a/uitest/test_main.py +++ b/uitest/test_main.py @@ -19,6 +19,8 @@ from uitest.framework import UITestCase from libreoffice.connection import OfficeConnection +test_name_limit_found = False + def parseArgs(argv): (optlist,args) = getopt.getopt(argv[1:], "hdr", ["help", "debug", "soffice=", "userdir=", "dir=", "file=", "gdb"]) @@ -73,12 +75,15 @@ def add_tests_for_file(test_file, test_suite): loader = importlib.machinery.SourceFileLoader(module_name, test_file) mod = loader.load_module() classes = get_test_case_classes_of_module(mod) + global test_name_limit_found for c in classes: test_names = test_loader.getTestCaseNames(c) for test_name in test_names: full_name = ".".join([module_name, c.__name__, test_name]) - if len(test_name_limit) > 0 and not test_name_limit.startswith(full_name): - continue + if len(test_name_limit) > 0: + if not test_name_limit.startswith(full_name): + continue + test_name_limit_found = True obj = c(test_name, opts) test_suite.addTest(obj) @@ -102,6 +107,11 @@ if __name__ == '__main__': sys.exit(1) elif "--dir" in opts: test_suite = get_test_suite_for_dir(opts) + test_name_limit = os.environ.get('UITEST_TEST_NAME', '') + print(test_name_limit_found) + if len(test_name_limit) > 0 and not test_name_limit_found: + print("UITEST_TEST_NAME '%s' does not match any test" % test_name_limit) + sys.exit(1) elif "--file" in opts: test_suite = unittest.TestSuite() add_tests_for_file(opts['--file'], test_suite) |