Robot Framework自定义测试库导入时的问题解决(Importing test library XXX failed )

一般我们自己写的测试库会放在 python的site-packages 路径下,其他第三方库自动安装的也都在这个目录中,比如requests等,这样在导入库的时候,会自动识别。以前我都是这么做的,但是这样有个不好的地方,就是库与项目目录分离,若我想把我自定义的库放在项目的Library目录中,直接Import就会报failed,找不到这个库。

找官方文档,里面给出了具体原因:
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#module-search-path
python有个模块搜索路径,可以自己sys.path看下:


如图,可以看到,里面包含了site-packages路径,所以在这个目录下的库是在python的模块搜索路径下的。

所以,后面的思路就明确了,把自己项目的路径添加到python的模块搜索路径下,具体有几种方法可以实现:

一、命令添加path路径

import sys
sys.path.append(r'/CODE/robotlib/')  # 这里append函数里的字符串就是你写的库文件的路径

二、在site-packages目录下面新建一个.pth 文件(以pth作为后缀名) ,将模块的路径写进去,可以发现,有些第三方库也有这个.pth文件,可以作为参考。

添加后,再次sys.path看下:



自定义的目录已经在python的模块搜索路径下了
请确保库的文件名和CLASS名一致,这样 import 库名的时候,可以省略.py后缀

注意,这里还有个问题,如果我的库文件不在模块搜索路径下,是在该路径的子路径下面,那其实直接import还是会搜索不到,这时加上相对路径即可

Library               base_library/Tools.py  #加路径后,需加上.py后缀
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,701评论 6 427
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • 1.3 安装说明 本章的说明涵盖了所有Robot Framework安装和卸载的方法,以及在不同操作系统上安装的前...
    wywincl阅读 11,975评论 0 8
  • 环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Pyth...
    MrHamster阅读 9,236评论 1 61
  • 学完java也有一年多的时间了,用的时间也不算短了,常常会有那么一种想法自己真的学会java了吗?觉得自己java...
    heyber阅读 3,301评论 0 9