我有一个测试套件目录,其中包含具有一个或多个测试用例的测试套件文件。假设它看起来像这样:
TestSuite
Test-1
Step 1
Step 2
Test-2
Step 1
Test-3
Step 1
Step 2
Step 3
我想解析输出.xml以获得这样的结果:
Test-1 | PASS
Test-1 | Step 1 | PASS
Test-1 | Step 2 | PASS
Test-2 | PASS
Test-2 | Step 1 | PASS
Test-3 | PASS
Test-3 | Step 1 | PASS
Test-3 | Step 2 | PASS
Test-3 | Step 3 | PASS
到目前为止,我设法使用以下代码仅获取套件文件名和结果:
from robot.api import ExecutionResult, SuiteVisitor
class PrintSuiteInfo(SuiteVisitor):
def visit_suite(self, suite):
print('{} | {}'.format(suite.name, suite.status))
result = ExecutionResult('output.xml')
result.suite.suites.visit(PrintSuiteInfo())
给出以下输出:
Test-1 | PASS
Test-2 | PASS
Test-3 | PASS
我可以使用以下代码获取测试用例名称和结果:
from robot.api import ExecutionResult, ResultVisitor
class PrintTestInfo(ResultVisitor):
def visit_test(self, test):
print('{} | {}'.format(test.name, test.status))
result = ExecutionResult('output.xml')
result.visit(PrintTestInfo())
但输出是:
Step 1 | PASS
Step 2 | PASS
Step 1 | PASS
Step 1 | PASS
Step 2 | PASS
Step 3 | PASS
所以与我需要在 Jira 中更新结果的套件文件无关。
我唯一想到的是在每个测试用例名称中包含套件文件名,但我想了解有关 robot.api 的更多信息。我多次查看文档,但现在对我来说还不够清楚。
我的一位同事帮助我解决了这个问题。我缺少的是:
test.parent
或者我自己想出来的:
test.longname
它给出这样的输出:
TestSuite.Test-1.Step 1
TestSuite.Test-1.Step 2
...
此处记录了它。