python - 创建python包后无法从另一个目录访问一个目录中的.robot文件中的关键字
问题描述
创建 python 包后,无法从另一个目录访问 .robot 文件中的关键字。虽然我能够访问 .py 但不能访问 .robot 文件的方法。
我创建了 Python 包(其中包含 .robot 测试套件),以便我可以在任何其他项目中重用该特定包中的关键字,只需在我成功创建和安装包的任何地方导入库(命名为包含一些 .robot 的资源测试套件和 .py 文件)。现在我想在其他机器人项目中使用“资源”包中的关键字。在这里,问题是当我写下面的语句时: 图书馆资源 我无法使用资源包中给出的关键字。但是如果我导入那个特定的机器人文件,我可以访问关键字:例如 Resource ../../../../Documents/MyWorkspace/RobotFramework/Resources/PostLoginSearch.robot 在这里我不想使用上面的绝对路径导入,因为它也可以在不创建包的情况下完成。那么是否可以通过仅导入资源包来使用关键字。我也成功地创建并安装了“资源”包,我也可以看到版本。导入“资源”包后,我可以调用 python 方法但无法访问 Resources .robot 文件中的关键字
而这个“资源”在其他一些项目中
解决方案
库搜索路径
指定要导入的测试库的最常见方法是使用其名称。Robot Framework 尝试从库搜索路径中找到实现该库的类或模块。基本上,这意味着库代码及其所有可能的依赖项必须在 PYTHONPATH 中。如果您的库位于 PYTHONPATH 环境变量中,则使用
Library <<name of your custom library>>
自省后更新
我不认为,这在机器人中是允许的,因为根据定义,当创建 python 用户定义库时,它将只包含 .py 文件,因为它们是自定义库。
另一方面,资源文件为机器人中创建的包含 .robot 扩展名的用户关键字和变量提供了一种机制。
这是两个不同的方面,我觉得你正在结合不应该的两个不同的东西。
也许另一种方法是将所有常用关键字(不是自定义 *.py)文件定义为测试套件本身的一部分,这样,当任何测试用例/模块调用时,它们将立即被继承。
更好的方法
将所有常用关键字分组到一个文件中,使其可供所有测试用例使用,即使用设置部分下的资源。
创建自定义测试库并将其放在 PYTHONPATH 下,并将这些方法也作为关键字访问。
推荐阅读
- c++ - C++ ternary assignment of lambda
- ios - 如何在共享扩展的发布操作上显示进度条或加载器
- ruby-on-rails - 找不到资源时如何返回 404,而不是 HTML
- python - 将用户输入与字典和列表进行比较
- html - 如何使用纯 CSS 创建动画表单占位符
- amazon-web-services - 如何在放大中设置 lambda 函数的触发器?
- javascript - 对 jquery 中的 css 函数 @media screen 和 (max-width: 768px) 有任何倡议吗?
- debugging - Typo3 更新:Partial 不呈现变量内容,除非使用 f:debug
- java - Java -- 如何使用 args[] 调用方法?
- python - 为什么 tensorflow.map 不能正常工作?