2 回答

TA贡献1827条经验 获得超9个赞
我设法在 Robot Framework 的API 文档中找到了相关部分。我想要实现的目标是不可能的。
访问者可以很容易地修改测试套件结构或从中收集信息。它们与
executable model
和 一起工作result model
,但传递给访问者方法的对象根据它们所使用的模型略有不同。主要 区别在于,在执行端关键字没有子 关键字或消息,并且只有结果对象具有与状态相关的属性,如status
和starttime
。

TA贡献1847条经验 获得超7个赞
使用 Robot Framework 4.0,如果用作套件设置的关键字是在套件本身内实现的,也就是套件拥有关键字,则这是可能的。该属性的文档说:robot.running.model.TestSuite
resource
ResourceFile
包含套件拥有的导入、变量和关键字的实例。从文件系统解析数据时,该数据来自创建套件的同一个测试用例文件。
因此可以在对象列表中找到子关键字及其参数suite.resource.keywords
。
from robot.api import SuiteVisitor
class Visitor(SuiteVisitor):
def start_suite(self, suite):
for keyword in suite.resource.keywords:
if suite.setup.name == keyword.name:
for item in keyword.body:
print(f'{item.name} - {item.args} - {item.type}')
if keyword.teardown.name:
print(f'{keyword.teardown.name} - {keyword.teardown.args} - {keyword.teardown.type}')
这打印:
Log - ('1st child',) - KEYWORD
Log Many - ('2nd', 'child') - KEYWORD
No Operation - () - KEYWORD
My Keyword Teardown - () - TEARDOWN
同样,如果 user 关键字是在导入的资源文件中而不是在套件文件本身中实现的,这将不起作用。
添加回答
举报