在 Robot Framework 中导入自定义测试库

Posted

技术标签:

【中文标题】在 Robot Framework 中导入自定义测试库【英文标题】:Importing custom testing library in Robot Framework 【发布时间】:2020-02-05 11:27:32 【问题描述】:

我正在为Python 中的Robot Framework 编写一个自定义测试库,我想像这样导入它:

Library         CustomLibrary

我将包含源代码的文件夹放在PYTHONPATH 上,但仍然出现错误:Importing test library 'CustomLibrary' failed: ImportError: No module named CustomLibrary

CustomLibrary 类在__init__.py 文件中定义,就像在AppiumLibrary 中这样:

from CustomLibrary.keywords import *

class CustomLibrary(_CustomKeywords):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

如何解决这个问题,以便将其导入 Robot Framework?我想将类定义保留在 init 文件中。

【问题讨论】:

什么是 CustomLibrary 路径? /Users/<user-name>/Desktop/Python/CustomLibrary/ 你看过这篇文章了吗? ***.com/questions/15746675/… 是的。我的所有包裹中都有一个__init__.py 文件 当你说“把包含源代码的文件夹放在PYTHONPATH上”,你是什么意思?如果CustomLibrary 是文件夹foo 中的一个文件夹,您是将foo 放在PYTHONPATH 上,还是foo/CustomLibrary 【参考方案1】:

您需要确保包含 CustomLibrary 的文件夹位于 PYTHONPATH 上。

例如,以下对我来说可以正常工作:

    在 /tmp 中创建一个名为 CustomLibrary 的文件夹 创建一个名为 /tmp/CustomLibrary/__init__.py 的文件 在 /tmp/CustomLibrary/__init__.py 中定义一个名为 CustomLibrary 的类 在 CustomLibrary 类中定义一个方法 在测试中使用Library CustomLibrary 导入库 将 /tmp 添加到 PYTHONPATH 并运行机器人。例如,robot --pythonpath /tmp example.robot

【讨论】:

以上是关于在 Robot Framework 中导入自定义测试库的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 8 中导入自定义字体

在 azure ml 部署环境中导入自定义 python 模块

在 Java 中导入自定义类

无法使用 Jupyter 笔记本在 Python 中导入自定义模块

Robot Framework - 如何在 Eclipse 中导入 SeleniumLibrary 关键字实现/文档

在pycharm中导入自定义模块