listener - python 库中的register 机器人框架监听器

  显示原文与译文双语对照的内容
0 0

net框架侦听器的功能,特性非常适合添加可选的前/后处理,可以在 命令行 。比如 和,中调用。 pybot --listener myListener.py mySuite.robot 但是我正在为机器人框架创建一个 python 库,我希望在不需要在上调用侦听器的情况下自动调用它的侦听器,以便在我的库导入( 我想让关键字和监听器一起工作) 时始终使用这些监听器。 是否可以使用代码来设置侦听器的状态?

时间: 原作者:

0 0

从 robot 2.8.5开始,你可以将一个库作为一个监听器。 在用户框架指南中,将测试库视为侦听器 。 最初的特性请求在问题 811中讨论。

下面是一个简单的例子。 它是一个提供单个关键字的库,"需要测试用例"。 这个关键字作为另一个测试用例的名称。 库也是一个监听程序,它跟踪哪些测试用例已经运行。 当关键字运行时,它查看已经运行的测试列表,如果所需的测试用例还没有运行或者已经失败,就会失败。


from robot.libraries.BuiltIn import BuiltIn

class DependencyLibrary(object):
 ROBOT_LISTENER_API_VERSION = 2
 ROBOT_LIBRARY_SCOPE ="GLOBAL"

 def __init__(self):
 self.ROBOT_LIBRARY_LISTENER = self
 self.test_status = {}

 def require_test_case(self, name):
 key = name.lower()
 if (key not in self.test_status):
 BuiltIn().fail("required test case can't be found: '%s'" % name)

 if (self.test_status[key]!="PASS"):
 BuiltIn().fail("required test case failed: '%s'" % name)

 return True

 def _end_test(self, name, attrs):
 self.test_status[name.lower()] = attrs["status"]

在测试案例中使用这里示例的示例:


*** Settings ***
| Library |/path/to/DependencyLibrary.py

*** Test Cases ***
| Example of a failing test
| | fail | this test has failed

| Example of a dependent test
| | [Setup] | Require test case | Example of a failing test
| | log | hello, world

原作者:
0 0

看起来我最近没有看到足够的文档。 这个精确特性是机器人框架 2.8.5中的新特性: http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#test-libraries-as-listeners

原作者:
...