簡體   English   中英

機器人框架:如何從設置/測試/拆卸中了解是否正在執行測試庫功能

[英]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 RoutineRun Teardown Test Routine 除了需要執行的任何特殊處理外,他們都可以調用“ Run Test Routine功能。 或者,他們可以簡單地向Run Test Routine傳遞一個額外的參數來告訴它上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM