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}')
這打?。?/p>
Log - ('1st child',) - KEYWORD
Log Many - ('2nd', 'child') - KEYWORD
No Operation - () - KEYWORD
My Keyword Teardown - () - TEARDOWN
同樣,如果 user 關鍵字是在導入的資源文件中而不是在套件文件本身中實現的,這將不起作用。
添加回答
舉報