如下面的机器人文件所示,我有三个测试用例。如果TESTCASE1失败,我想停止测试执行。只有在TESTCASE1通过时才应执行TESTCASE2。
*** Settings ***
Library pythonLib
*** Test cases ***
TESTCASE1
boot device
TESTCASE2
configure device
TESTCASE3
restart device
是否有任何关键字或自定义方式来执行此操作?
答案 0 :(得分:12)
如果您希望机器人在任何测试失败后立即停止运行,那么就有一个命令行选项。此选项为--exitonfailure
。在机器人框架用户指南中,标题为Stopping when the first test fails的部分:
如果使用选项
--exitonfailure
,则测试执行会立即停止 任何关键测试都失败了其余测试也标记为 失败。
您可能还需要查看问题this answer的Automatic failing/non-execution of interdependent tests in Robot Framework,其中显示了如何编写关键字以实现测试用例之间的依赖关系。
答案 1 :(得分:3)
有多种方法可以完成工作,每种方法都适合不同的情况。
任何测试用例失败后,命令行选项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,每当脚本遇到错误时,这将停止执行。除非您明确启动,否则脚本将不会继续执行。