我有一个测试套件目录,其中包含带有一个或多个测试用例的测试套件文件。假设它看起来像这样:
TestSuite
Test-1
Step 1
Step 2
Test-2
Step 1
Test-3
Step 1
Step 2
Step 3我想解析output.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的知识。我研究了the documentation很多次,但现在对我来说还不够清楚。
发布于 2020-07-17 21:29:06
我的一个同事帮我解决了这个问题。我遗漏的是:
test.parent或者是我自己想出来的:
test.longname它给出了如下输出:
TestSuite.Test-1.Step 1
TestSuite.Test-1.Step 2
...它记录在here中。
https://stackoverflow.com/questions/62436283
复制相似问题