How to handle try catch exception in ride robot framework?

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-08 06:38:31

问题


I'm using RIDE robotframework, i want to handle an exception when the application is crashed i close it then open a new instance of it.

*** Settings ***
Library           SikuliLibrary

*** Variables ***
${openProject}    sikuli_captured\\Emna\\openProject.png
${DataBaseSTProject}    sikuli_captured\\Emna\\DataBaseSTProject.png
${testSession}    sikuli_captured\\Emna\\testSession.png
${menu}           sikuli_captured\\menu.png
${fileName}       sikuli_captured\\Emna\\fileName.png
${save}           sikuli_captured\\Emna\\save.png

*** Test Cases ***
createNewProject
    Click    ${menu}
    Click    ${testSession}
    Input Text    ${fileName}    FirstProjecT3
    Click    ${save}

openTestProject
    Click    ${openProject}
    Double Click    ${DataBaseSTProject}

Any suggestion would be appreciated.

Thanks for your help :)


回答1:


In Robot Framework the concept of Try/Catch/Finally is not present. In essence your Test Case body is the Try part of this trifecta and the other two are combined into the [Teardown] keywords of the respective Test Suite, Test Case or Keyword sections.

Within this Teardown keyword it is possible to recognize if a Test Case has Passed or Failed through the automatic variables of Robot Framework itself or the Run Keyword If ... family of keywords. This would allow you to create a separate section for the Catch, and finally. In the below section of code an example is given of a pass and fail test case, each using the same Teardown.

This construct should allow you to check if a step in a test case failed, verify if the application has crashed (through the Sikuli image test of the popup) and then close and restart the application.

*** Test Cases ***

Open Application and fail
    Log to Console    About to Fail
    Fail
    Log to Console    Will never trigger.
    [Teardown]    Generic Test Case Teardown

Open Application and Pass
    Log to Console    About to Pass
    No Operation
    Log to Console    Will trigger.
    [Teardown]    Generic Test Case Teardown

*** Keywords ***
Generic Test Case Teardown
    # Catch of Try Catch Finally
    Run Keyword If Test Failed    Test Case Catch

    # Finally of Try Catch Finally
    #  RKITS is only executed when test passed.
    Run Keyword If Test Passed    Test Case Finally
    #  Always executed regardless of test execution status.
    Log To Console     I am always executed.

Test Case Catch
    Log To Console    Test Case Catch

Test Case Finally
    Log To Console    Test Case Finally


来源:https://stackoverflow.com/questions/44310079/how-to-handle-try-catch-exception-in-ride-robot-framework

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!