From b13dd73f038cf6a10dd448782f7fcbaccf22bb5b Mon Sep 17 00:00:00 2001 From: Konboi Date: Mon, 23 Jun 2025 18:05:44 +0900 Subject: [PATCH 1/2] install latest version --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index b028d942b..fb438442e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,7 +19,7 @@ install_requires = click>=8.1,<8.2;python_version>'3.6' requests>=2.25;python_version>='3.6' urllib3>=1.26 - junitparser>=2.0.0 + junitparser>=4.0.0 setuptools more_itertools>=7.1.0;python_version>='3.6' python-dateutil From a1ec8e63f72417da672ebd0fb219a2acb220ce36 Mon Sep 17 00:00:00 2001 From: Konboi Date: Mon, 23 Jun 2025 18:09:03 +0900 Subject: [PATCH 2/2] from junitparser v4.0.0 returns JUnitXml instead of testsuite --- launchable/test_runners/robot.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/launchable/test_runners/robot.py b/launchable/test_runners/robot.py index 3b3bf926c..81f7f6efc 100644 --- a/launchable/test_runners/robot.py +++ b/launchable/test_runners/robot.py @@ -80,13 +80,14 @@ def record_tests(client, reports): @launchable.subset def subset(client, reports): for r in reports: - suite = JUnitXml.fromfile(r, parse_func) - - for case in suite: - cls_name = case._elem.attrib.get("classname") - name = case._elem.attrib.get('name') - if cls_name != '' and name != '': - client.test_path([{'type': 'class', 'name': cls_name}, {'type': 'testcase', 'name': name}]) + xml = JUnitXml.fromfile(r, parse_func) + + for suite in xml: + for case in suite: + cls_name = case._elem.attrib.get("classname") + name = case._elem.attrib.get('name') + if cls_name != '' and name != '': + client.test_path([{'type': 'class', 'name': cls_name}, {'type': 'testcase', 'name': name}]) client.formatter = robot_formatter client.separator = " "