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

时间:2015-10-24 15:40:25

标签: robotframework

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

*** Settings ***

Library         pythonLib


*** Test cases ***

TESTCASE1
    boot device

TESTCASE2
    configure device

TESTCASE3
    restart device  

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

3 个答案:

答案 0 :(得分:12)

如果您希望机器人在任何测试失败后立即停止运行,那么就有一个命令行选项。此选项为--exitonfailure。在机器人框架用户指南中,标题为Stopping when the first test fails的部分:

  

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

您可能还需要查看问题this answerAutomatic failing/non-execution of interdependent tests in Robot Framework,其中显示了如何编写关键字以实现测试用例之间的依赖关系。

答案 1 :(得分:3)

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

-exitonfailure

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

致命错误

您可能只想中止<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> 失败的情况。 Fatal Error关键字仅用于此目的:

--exitonfailure

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

套房设置

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

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

对我来说,这不是一个测试用例。那是一个设置。如果您需要安装程序在一组测试用例之前运行一次,则应将其指定为TESTCASE1 ${passed}= Run Keyword And Return Status boot device Run Keyword If not ${passed} Fatal Error

boot device

答案 2 :(得分:0)

-pause_on_failure,每当脚本遇到错误时,这将停止执行。除非您明确启动,否则脚本将不会继续执行。