python - Robot.libdoc 正在调用 __init__ 并失败

标签 python robotframework

我正在使用 robots.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

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

感谢和问候,

最佳答案

其中一种方法是使用延迟初始化。从 __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()
   ''' ... '''

关于python - Robot.libdoc 正在调用 __init__ 并失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45431536/

相关文章:

python - 计算具有相同列和一些不匹配行的两个 pandas 数据帧之间的差异

python - 安装 Pillow 错误 : Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

robotframework - 字典作为机器人框架中的变量 : code runs ok but the IDE yields error

robotframework - 带有定位器 'xpath=//*[@id="1"]/button' 的元素未找到

python - Dataframe 将 NA 值转换为 NaN

python - 如何将 Unicode 转换为大写进行打印?

python - Postgresql 表更新

html - 机器人框架: How to locate a input text field and how to input a value in it

mysql - 将 String 替换为 Regexp 以获取从 Robot 框架中的 MySQL Query 获取的值

python - 如何并行运行机器人框架测试用例而不是并行运行测试套件?