机器人框架在失败时停止拆卸执行

robot framework stop teardown execution in failure

我正在使用机器人框架来测试我的应用程序

我在测试中使用了拆解。

它按预期工作,如果我的测试结束或失败,拆解开始执行。当拆卸执行失败时,我的问题就开始了,然后我希望它停止。

*** Test Cases ***
Test new data import
   Setup test case
   Run test case
   [Teardown]  TearDown test case

Teardown test case
   Insert name in filter
   Delete user

场景是当"Insert name in filter"失败时,我想让它停止运行,但它执行了"Delete user"关键字。

是否可以预防?

试试这个以防止在调用 exitonfailure 时执行 "Delete user" 关键字:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#stopping-when-first-test-case-fails

用法:使用选项时,必须始终在运行器脚本和数据源之间给出它们

--exitonfailure -x

示例:robot --exitonfailure 01_robot_test.robot

If option --exitonfailure (-X) is used, test execution stops immediately if any critical test fails. The remaining tests are marked as failed without actually executing them.

我终于做了一些研究,看看为什么使用 --exitonfailure(在其他答案中建议)对我不起作用,因为它错过了拆卸工作流程。

https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#id689 可以停止拆解执行

拆解 -> 即使某些关键字失败,它们也会完全执行。

所以,我要做的是使用 运行 关键字和 return 状态和 运行 关键字来解决:

*** Test Cases ***
Test new data import
  Setup test case
  Run test case
  [Teardown]  TearDown test case

Teardown test case
  ${filterStatus}  Run keyword and return status  Insert name in filter
  Run keyword if  ${filterStatus}  Delete user
  ... ELSE  fail  Filter filter by name failed