【问题标题】:Not able to access the keywords in .robot file in one directory from other directory after creating python package创建python包后无法从另一个目录访问一个目录中的.robot文件中的关键字
【发布时间】:2020-03-17 10:39:24
【问题描述】:

创建python包后,无法从另一个目录访问一个目录中的.robot文件中的关键字。虽然我可以访问 .py 但不能访问 .robot 文件的方法。

我创建了 Python 包(其中包含 .robot 测试套件),以便我可以在任何其他项目中重用该特定包中的关键字,只需在任何地方导入库 我已经成功创建并安装了包(命名为 Resources,其中包含一些 .robot 测试套件和 .py 文件)。现在我想在其他机器人项目中使用“资源”包中的关键字。在这里,问题是当我写下面的语句时: 图书馆资源 我无法使用 Resources 包中给出的关键字。但是如果我导入那个特定的机器人文件,我就可以访问关键字:例如 资源../../../../Documents/MyWorkspace/RobotFramework/Resources/PostLoginSearch.robot 在这里我不想使用上面的绝对路径导入,因为它也可以在不创建包的情况下完成。那么是否可以通过仅导入资源包来使用关键字。 我也成功地创建并安装了“资源”包,我也可以看到版本。导入“资源”包后,我可以调用 python 方法,但无法访问 Resources .robot 文件中的关键字

这个“资源”在其他项目中

enter image description here

【问题讨论】:

    标签: python testing automation robotframework


    【解决方案1】:

    creating test libraries

    图书馆搜索路径

    指定要导入的测试库的最常用方法是使用其名称。 Robot Framework 尝试从库搜索路径中找到实现该库的类或模块。基本上,这意味着库代码及其所有可能的依赖项必须在 PYTHONPATH 中。如果您的库位于 PYTHONPATH 环境变量中,则使用

    Library <<name of your custom library>>
    

    自省后更新

    我不认为,这在机器人中是允许的,因为根据定义,当创建 python 用户定义库时,它将只包含 .py 文件,因为它们是自定义库。

    另一方面,资源文件为在包含 .robot 扩展名的机器人中创建的用户关键字和变量提供了一种机制。

    这是两个不同的方面,我觉得你在结合不应该的两个不同的东西。

    也许另一种方法是将所有常用关键字(不是自定义 *.py)文件定义为测试套件本身的一部分,这样,当任何测试用例/模块被调用时,它们会立即被继承。

    更好的方法

    1. 将所有常用关键字分组到一个文件中,使其可供所有测试用例使用,即使用设置部分下的资源。

    2. 创建自定义测试库并将其放在 PYTHONPATH 下,并将这些方法作为关键字访问。

    【讨论】:

    • 在库中我们只能导入python文件。但这里我的包包含非 .py 文件,即 .robot 文件。这就是为什么我不能使用 Resources/PostLoginSearch.robot 文件中给出的关键字的原因,因为它就像一个文件夹而不是 python 文件。所以如果我需要在外部项目中使用这些机器人文件,我需要创建一个已经成功安装的包。但我不明白在外部项目中的那些机器人文件中使用关键字的方式。
    • 我还添加了一张显示文件夹结构的图片以供参考。请检查图片
    • 我不认为,这在机器人中是允许的,因为根据定义,当创建 python 用户定义库时,它将只包含 .py 文件,因为它们是自定义库。另一方面,资源文件为在包含 .robot 扩展名的机器人中创建的用户关键字和变量提供了一种机制。这是 2 个不同的方面,我觉得你正在结合 2 个不应该的不同的东西。
    • 也许另一种方法是将所有常用关键字(不是自定义 *.py)文件定义为测试套件本身的一部分,这样,当任何测试用例/模块调用时,它们会得到立即继承。
    • 我想探索将我们的自动化打包为工具(例如包含关键字、定位器、python 文件的机器人文件)和测试(自动化测试套件)的选项,以便我们可以重用其他团队完成的自动化.我应该能够对包含该应用程序关键字的包进行 pip 安装。我应该打包我们的工具模块并使用 pip install 安装在测试模块中并运行相同
    猜你喜欢
    • 2021-09-19
    • 2019-06-27
    • 1970-01-01
    • 2021-06-16
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2021-11-12
    相关资源
    最近更新 更多