无法使用机器人框架中定义的关键字调用类方法

时间:2018-05-22 12:32:29

标签: python robotframework keyword

您好我正在尝试创建自己的关键字并从机器人脚本调用它:

以下是我的示例代码:

util.py

from robot.api.deco import keyword

@keyword('Add Num')
def add(a,b):
    print "Simple method"
    return int(a)+int(b)
class Geo :
    @keyword('Class Add Num')
    def addd(self,a,b):
        print "Inside class method "
        return int(a)+int(b)

Sample.robot

*** Settings ***
Library   util.py

*** Test Cases ***
TC_01
    [Documentation]  sample test
    [Tags]  Sample
    Add Num  10  20
    Class Add Num  10  2

我正在使用pybot命令运行 - pybot sample.robot

添加Num关键字工作正常,但Class Add Num会出错:

No keyword with name 'Class Add Num' found.

我已经尝试过查看stackoverflow和官方机器人框架文档,但可以找到任何相关的帮助。

如何解决此错误,或者我需要以不同的方式实现它?

1 个答案:

答案 0 :(得分:2)

机器人不会在库中的类中自动实例化,除非在一个特殊情况下,即类名与文件名的基本部分相同。

编写库的正确方法是 使用与文件名相同的单个类,函数,但不能同时使用两者。如果您想同时使用它们,则由您来创建类的实例并公开关键字。

第三种方法是使用创建特殊函数的dynamic library api来获取可用关键字列表(get_keyword_names),并执行关键字(run_keyword)。这些都记录在用户指南中。