![](/img/trans.png)
[英]In Robot Framework, in the test case teardown phase, how to check whether the current test case is fail or pass?
[英]Robot Framework : How to know whether a test library function is being executed from setup/test/teardown
我有自己的測試庫功能run_test_routine()
我在設置部分,測試部分和拆卸部分中從我的RF套件中調用與 RF功能相同的功能“運行測試例程”,就像這樣
my RF test case
[Setup] Run Test Routine setup_input
Run Test Routine test_input
[Teardown] Run Test Routine teardown_input
現在,當在RF python庫中調用此run_test_routine()時,我如何知道從何處調用它? 即是從“設置”部分,“測試”部分還是“拆解”部分調用的?
我想強調的是,這是RF庫的python代碼所必需的,而不是基於文本的RF套件所必需的
我認為沒有可靠的方法來確定調用關鍵字的上下文。 我唯一能想到的就是檢查堆棧,以查看是否調用了內部例程_run_setup
或_run_teardown
。 這可能會在將來的機器人版本中輕易中斷,因為它取決於某些內部私有功能的名稱。
如果您確實想這樣做,它可能看起來像這樣:
import traceback
def _is_setup():
for tb in reversed(traceback.extract_stack()):
if (tb[2] == "_run_setup"):
return True
return False
def _is_teardown():
for tb in reversed(traceback.extract_stack()):
if (tb[2] == "_run_teardown"):
return True
return False
我認為更好的解決方案是使用三個關鍵字。 保留一個,然后再創建兩個名為Run Setup Test Routine
和Run Teardown Test Routine
。 除了需要執行的任何特殊處理外,他們都可以調用“ Run Test Routine
功能。 或者,他們可以簡單地向Run Test Routine
傳遞一個額外的參數來告訴它上下文。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.