我正在使用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。
谢谢&的问候,
答案 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()
''' ... '''