robotframework:定义类中可用的关键字

2024-05-20 16:45:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在模块中实现为类的库:

我的lib.py

class MyLib(ParentLib):
  def __init__(self):
    #do stuff
    pass

  def keyword(self, arg1):
    robot.api.logger.console('keyword')

ParentLib.py

^{pr2}$

我可以导入此库而不会出现Library MyLib问题。这看起来有悖常理,但我想阻止MyLib提供Parent Keyword。i、 如果一个用户想要Parent Keyword,我希望他们被迫用Library ParentLib手动导入它。这是可能的,还是需要重新组织我的库的实现方式?在


Tags: 模块pyselfinitlibdeflibrarydo
1条回答
网友
1楼 · 发布于 2024-05-20 16:45:45

您可以定义方法get_keyword_names,以显式定义哪些关键字将公开给测试:

class MyLib(ParentLib):
    ...
    def get_keyword_names(self):
        return ["keyword"]

robot框架用户指南将其称为hybrid library。在

就我个人而言,我会反对这一点。就像你在问题中说的,这是违反直觉的。在

如果您想让关键字库共享一些通用代码,那么MyLib和{}都从一个公共基继承,而不是在隐藏继承的函数的同时让一个继承另一个。如果要隐藏函数,为什么要继承它?在

相关问题 更多 >