【问题标题】:How to stop Robot Framework test execution if first testcase FAIL?如果第一个测试用例失败,如何停止 Robot Framework 测试执行?
【发布时间】:2016-01-24 00:46:07
【问题描述】:

如下面的机器人文件所示,我有三个测试用例。如果 TESTCASE1 失败,我想停止测试执行。只有在 TESTCASE1 通过时才应执行 TESTCASE2。

*** Settings ***

Library         pythonLib


*** Test cases ***

TESTCASE1
    boot device

TESTCASE2
    configure device

TESTCASE3
    restart device  

是否有任何关键字或自定义方法可以做到这一点?

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    如果您希望机器人在任何测试失败后立即停止运行,则可以使用命令行选项。这个选项是--exitonfailure。来自机器人框架用户指南,标题为Stopping when the first test fails

    如果使用选项--exitonfailure,测试执行会立即停止,如果 任何关键测试都失败了。其余测试也标记为 失败了。

    您可能还想看看this answer 到问题Automatic failing/non-execution of interdependent tests in Robot Framework,它显示了如何编写关键字来实现测试用例之间的依赖关系。

    【讨论】:

    • 可能类似于Fatal Error内置关键字。
    【解决方案2】:

    有多种方法可以完成工作,每种方法都适用于不同的情况。

    --exitonfailure

    命令行选项--exitonfailure任何测试用例失败后中止测试运行,除非它被标记为noncritical

    致命错误

    您可能只想在 TESTCASE1 完全失败时中止。 Fatal Error 关键字就是为此目的而存在的:

    TESTCASE1
        ${passed}=  Run Keyword And Return Status  boot device
        Run Keyword If  not ${passed}  Fatal Error
    

    如果您觉得这很笨拙,您可以抛出致命错误directly from Python/Java

    套件设置

    这些工具可以完成工作,并且在某些情况下是合适的。虽然在提问者的情况下,我观​​察到:

    • 第一个测试用例必须通过才能运行任何其他测试。
    • 它运行一个名为boot device的关键字。

    对我来说,这不是一个测试用例。那是一个设置。如果您需要在一组测试用例之前运行一次设置,则应将其指定为 Suite Setup

    ***Settings***
        Suite Setup    boot device
    

    【讨论】:

      【解决方案3】:

      --pause_on_failure,这将停止执行,只要脚本遇到错误。除非您明确启动,否则不会恢复脚本执行。

      【讨论】:

      • pause_on_failure 在机器人框架的当前版本 (3.1.1) 中似乎不是有效标志。你在哪里看到的?
      • 这个其实是自定义的,暂时不行。
      猜你喜欢
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 2019-03-07
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多