簡體   English   中英

Robot Framework:如何動態構建拆解

[英]Robot Framework: How to build teardown dynamically

我正在嘗試在我的測試用例中動態構建拆卸操作。 例如,對於測試用例中的每個步驟,我都有相應的拆卸步驟。 因此,取決於測試用例在哪一點失敗,我試圖在拆解中只運行那些許多干凈的操作。

我期待像下面這樣的工作(不幸的是Run Keywords需要在AND中特別提到)

*** Settings ***
Library    Collections

*** Test Cases ***
Sample Test1
    ${Cleanup KWS}=    Create List    Log    Cleanup Step1
    Log    Test Step1
    ${Cleanup KW}=    Create List    Log    Cleanup Step2    AND
    ${Cleanup KWS}=    Combine Lists    ${Cleanup KW}    ${Cleanup KWS}
    Log    Test Step2
    ${Cleanup KW}=    Create List    Log    Cleanup Step3    AND
    ${Cleanup KWS}=    Combine Lists    ${Cleanup KW}    ${Cleanup KWS}
    Log    Test Step3

    [Teardown]    Run Keywords    @{Cleanup KWS}

如果上述情況可行,則測試用例執行可能會更有效(如果測試在兩者之間失敗)和/或我可以避免在拆卸階段出現不必要的失敗。

有沒有其他優雅的方式來支持上述期望的行為?

您可以通過在Keywords部分定義每個拆卸步驟來做到這一點:

*** Keywords ***
Teardown_Step_1
    log to console    Teardown for step 1

Teardown_Step_2
    log to console    Teardown for step 2

Teardown_Step_3
    log to console    Teardown for step 3

Execute teardown steps
    [Documentation]    Execute a list of keywords
    [Arguments]  @{keywords}
    [Return]     @{result}

    @{result}=   create list
    FOR  ${keyword}  IN  @{keywords}
        ${keyword result}=  Run keyword  ${keyword}
        Append to list  ${result}  ${keyword result}
    END

然后在測試中你可以像這樣使用上面的關鍵字:

Sample Test1

    @{teardown_list} =   create list

    Log    Test Step1
    append to list    ${teardown_list}     Teardown_Step_1
    Log    Test Step2
    append to list    ${teardown_list}     Teardown_Step_2
    Log    Test Step3
    append to list    ${teardown_list}     Teardown_Step_3

    [Teardown]    Execute teardown steps    @{teardown_list}

暫無
暫無

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

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