【问题标题】:Rerun entire Test Suite if a Test Case Fails in Robot Framework如果机器人框架中的测试用例失败,则重新运行整个测试套件
【发布时间】:2021-03-22 13:06:26
【问题描述】:

如果单个特定测试用例失败,有没有办法重新运行整个测试套件。

例如,一个包含测试用例的机器人代码将检查 cookie 值,如果 cookie 具有特定模式,则将继续执行其余代码,如果失败,则应重新运行整个机器人代码/测试Suite 并重复此操作 3 次,如果 cookie 值在 3 次运行中不相同,则让它完全通过测试套件。

【问题讨论】:

    标签: cookies robotframework


    【解决方案1】:

    您可以运行原始测试、重新运行失败并合并两次运行的结果。如果某些测试在第一次运行时失败,然后在第二次运行中通过,您会在结果中看到。

    通常需要重新执行一部分测试,例如, 在修复被测系统或测试中的错误之后 他们自己。这可以通过按名称选择测试用例来完成 (--test 和 --suite 选项),标签(--include 和 --exclude),或通过 以前的状态(--rerunfailed 或--rerunfailedsuites)。

    robot --output original.xml tests                                # first execute all tests
    robot --rerunfailedsuites original.xml --output rerun.xml tests  # then re-execute failing
    rebot --merge original.xml rerun.xml                             # finally merge results
    

    你可以在这里https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#merging-re-executed-tests阅读更多相关信息

    对于您的具体示例,我不确定您是否可以这样做。但是您可以保存运行的退出代码并据此评估它

    robot "your robot options" $@
    if [ $? -eq 0 ]; then 
    "evaluation options when passed"
    fi
    else
    "evaluation options when failed"
    fi
    

    【讨论】:

    • 对不起,我并不是只想运行失败的测试用例,如果某个特定的测试用例失败,我必须重新开始运行整个文件。有没有办法实现它
    • 选项 --rerunfailedsuites 重新运行整个套件,而不仅仅是测试。
    • 但我希望它仅在一个特定/特殊情况失败时运行。如果任何测试用例失败,这将运行 na ?
    • 这很不寻常,但是您可以在测试拆解中使用关键字Run Keyword If Test Failed。使用它来记录到文件,根据该文件的内容使用您的特定套件执行机器人命令。这样只有在特定测试失败时才会执行诉讼。
    • 另一种方法是使用标签,并将其他测试标记为不重要。然后您可以使用 --rerunfailedsuites 选项,并且套件应该仅在您的特定测试失败后重新运行。有关标签的信息,请查看robotframework.org/robotframework/latest/… 然后您可以为标签分配关键性。文档在这里robotframework.org/robotframework/latest/…
    猜你喜欢
    • 2016-02-20
    • 1970-01-01
    • 2017-09-06
    • 2019-10-09
    • 2018-06-27
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多