如果第一个测试用例失败,如何停止Robot Framework测试执行?

rcu*_*her 5 robotframework

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

*** Settings ***

Library         pythonLib


*** Test cases ***

TESTCASE1
    boot device

TESTCASE2
    configure device

TESTCASE3
    restart device  
Run Code Online (Sandbox Code Playgroud)

是否有任何关键字或自定义方式来执行此操作?

Bry*_*ley 15

如果您希望机器人在任何测试失败后立即停止运行,那么就有一个命令行选项.这个选项是--exitonfailure.在机器人框架用户指南中,标题为第一次测试失败时停止的部分:

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

您可能还想查看机器人框架中相互依赖测试的自动失败/不执行问题的答案,该答案显示了如何编写关键字以实现测试用例之间的依赖关系.


The*_*chd 8

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

--退出失败

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

致命错误

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

TESTCASE1
    ${passed}=  Run Keyword And Return Status  boot device
    Run Keyword If  not ${passed}  Fatal Error
Run Code Online (Sandbox Code Playgroud)

如果这对您来说看起来很笨重,您可以直接从 Python/Java抛出致命错误。

套件设置

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

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

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

***Settings***
    Suite Setup    boot device
Run Code Online (Sandbox Code Playgroud)