0

我有一个类似于以下内容的库 management_utils.py:

path = global_settings.get_rdio_base_path()
if path == "":
     raise PathRequiredError("Path is required...")

def some_keyword():
     # keyword requires path to be set to some valid value

在我的测试用例文件中,我有类似的内容:

***Settings***
Library     management_utils

***Test Cases***
Smoke Test
  some keyword
...

如果 management_utils 设置失败,是否可以中止运行这些测试用例?基本上,如果在 management_utils.py 中引发了 PathRequiredError,我想中止这些测试用例的执行。

当我运行测试时,我看到错误被引发,但继续执行。

我在机器人文档中看到您可以在错误类中设置 ROBOT_EXIT_ON_FAILURE = True 但这似乎不适用于这种情况。理想情况下,我还可以做一些更细化的事情,这样它只会中止需要这个库的测试用例,而不是所有的测试执行。

谢谢!

4

1 回答 1

0

问题是在库加载期间引发了异常,因为它位于模块的顶层。ROBOT_EXIT_ON_FAILURE 仅在失败来自关键字时才有效。

相反,请执行以下操作:

def get_path():
    path = global_settings.get_rdio_base_path()
    if path == "":
        raise PathRequiredError("Path is required...")

def some_keyword():
   path = get_path()
   ...

现在在关键字内引发异常,测试执行将停止。

至于另一点,没有办法只使用 ROBOT_EXIT_ON_FAILURE 中止一些测试。

于 2013-01-30T11:25:05.953 回答