From bc57955fff600bf1632ef809a2c8d4585cf45504 Mon Sep 17 00:00:00 2001 From: deveco_test Date: Wed, 31 Aug 2022 18:19:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DOHJS=E9=A9=B1=E5=8A=A8Fail?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E8=A2=AB=E6=A0=87=E8=AE=B0=E4=B8=BABlock?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: deveco_test --- plugins/ohos/src/ohos/drivers/openharmony.py | 8 ++++++++ plugins/ohos/src/ohos/parser/parser.py | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/ohos/src/ohos/drivers/openharmony.py b/plugins/ohos/src/ohos/drivers/openharmony.py index acccd89..8066c3f 100644 --- a/plugins/ohos/src/ohos/drivers/openharmony.py +++ b/plugins/ohos/src/ohos/drivers/openharmony.py @@ -330,6 +330,8 @@ class OHJSUnitTestDriver(IDriver): do_module_kit_setup(request, self.kits) self.runner = OHJSUnitTestRunner(self.config) self.runner.suites_name = request.get_module_name() + if self.rerun: + self.runner.retry_times = self.runner.MAX_RETRY_TIMES # execute test case self._get_runner_config(json_config) oh_jsunit_para_parse(self.runner, self.config.testargs) @@ -400,6 +402,7 @@ class OHJSUnitTestDriver(IDriver): LOG.debug("Ready to run with rerun, expect run: %s" % len(expected_tests)) test_run = self._run_tests(listener) + self.runner.retry_times -= 1 LOG.debug("Run with rerun, has run: %s" % len(test_run) if test_run else 0) if len(test_run) < len(expected_tests): @@ -421,6 +424,7 @@ class OHJSUnitTestDriver(IDriver): self.runner.add_arg("class", ",".join(tests)) LOG.debug("Ready to rerun twice, expect run: %s" % len(expected_tests)) test_run = self._run_tests(listener) + self.runner.retry_times -= 1 LOG.debug("Rerun twice, has run: %s" % len(test_run)) if len(test_run) < len(expected_tests): expected_tests = TestDescription.remove_test(expected_tests, @@ -449,6 +453,8 @@ class OHJSUnitTestDriver(IDriver): class OHJSUnitTestRunner: + MAX_RETRY_TIMES = 3 + def __init__(self, config): self.arg_list = {} self.suites_name = None @@ -458,6 +464,7 @@ class OHJSUnitTestRunner: self.finished = False self.expect_tests_dict = dict() self.finished_observer = None + self.retry_times = 1 def dry_run(self): parsers = get_plugin(Plugin.PARSER, CommonParserType.oh_jsunit_list) @@ -483,6 +490,7 @@ class OHJSUnitTestRunner: def notify_finished(self): if self.finished_observer: self.finished_observer.notify_task_finished() + self.retry_times -= 1 def _get_shell_handler(self, listener): parsers = get_plugin(Plugin.PARSER, CommonParserType.oh_jsunit) diff --git a/plugins/ohos/src/ohos/parser/parser.py b/plugins/ohos/src/ohos/parser/parser.py index ddfbbd9..e5362fa 100644 --- a/plugins/ohos/src/ohos/parser/parser.py +++ b/plugins/ohos/src/ohos/parser/parser.py @@ -1151,7 +1151,8 @@ class OHJSUnitTestParser(IParser): result = copy.copy(test_info) result.code = ResultCode.FAILED.value listener.__ended__(LifeCycle.TestCase, result) - if listener.__class__.__name__ == "ReportListener": + if listener.__class__.__name__ == "ReportListener" \ + and self.runner.retry_times > 1: index = list(listener.tests.keys())[-1] listener.tests.pop(index) test_info.is_completed = True @@ -1165,7 +1166,8 @@ class OHJSUnitTestParser(IParser): result = copy.copy(test_info) result.code = ResultCode.FAILED.value listener.__ended__(LifeCycle.TestCase, result) - if listener.__class__.__name__ == "ReportListener": + if listener.__class__.__name__ == "ReportListener" \ + and self.runner.retry_times > 1: index = list(listener.tests.keys())[-1] listener.tests.pop(index) test_info.is_completed = True