Robot.libdoc正在调用__init__并失败

时间:2017-08-01 07:29:28

标签: python robotframework

我正在使用robot.libdoc为Robot Framework,Python和Java库生成自动文档。不幸的是,在一些Python库中,我有以下代码:

def __init__(self):
    try:
        self.HADOOP_HOME = os.environ["HADOOP_HOME"]
    except KeyError as k:
        self.print_to_log("HADOOP_HOME isn't defined")
        raise k

由于robot.libdoc正在调用__init__,因此会引发错误并且不会创建文档文件。有没有办法跳过错误?我发现它用于运行,但不是用于libdoc。

谢谢&的问候,

1 个答案:

答案 0 :(得分:1)

其中一种方法是使用延迟初始化。从__init__方法中删除任何逻辑,并将其放在_init中,稍后将通过库中定义的每个关键字调用它。示例如下。

def __init__(self):
   self._ready = False

def _init(self):
   if self._ready:
      return
   ''' your initialization logic goes here '''
   self._ready = True

@keyword
def my_keyword(self, param1, param2):
   self._init()
   ''' ... '''