首页 > 解决方案 > 在不停止机器人框架中的测试执行的情况下使关键字失败

问题描述

我从关键字中引发错误的方式是使用 robots.api.logger 类

def test_keyword():
    logger.error("Report error")

这会在关键字下的 log.html 文件中创建一个错误行,但不会使关键字失败。

我失败关键字的方法是引发异常。

def test_keyword():
    raise Exception("Not implemented")

这会使关键字以及调用关键字的测试用例失败。但这也停止了测试用例的进一步执行。

有什么方法可以在不停止测试用例执行的情况下使关键字失败?

标签: robotframework

解决方案


文档中:

库关键字使用异常报告失败,并且可以使用特殊异常告诉核心框架无论失败都可以继续执行。

当测试结束并且出现一个或多个持续失败时,测试将被标记为失败。如果有多个失败,所有这些都将在最终错误消息中枚举:

Several failures occurred:

1) First error message.

2) Second error message ...

从测试库发出信号的方法是向用于传达故障的异常添加一个具有 True 值的特殊 ROBOT_CONTINUE_ON_FAILURE 属性。下面的例子证明了这一点。

class MyContinuableError(RuntimeError):
    ROBOT_CONTINUE_ON_FAILURE = True

推荐阅读