当测试在单独的文件夹中时使用pytest

时间:2018-08-19 07:53:12

标签: python python-3.x unit-testing pytest

我的python文件夹结构如下

repository
  -libraries
     -image
        -imagefuncs.py
     -videos
        -videofuncs.py
     -text
        -textfuncs.py
  -docs
  -tests
     -test_imagefuncs.py

对于我的一生,我无法弄清楚应该如何测试imagefuncs.py的{​​{1}}中定义的功能

我无法在test_imagefuncs.py中导入库文件夹,因此这些功能对我的测试代码都不可见。

我正在使用python3,我要做的只是从根存储库文件夹中执行py.test,并执行所有测试而不会引发导入错误。

修改python路径是实现这一目标的唯一方法吗?

我想在不修改系统路径或python路径的情况下实现这一目标

1 个答案:

答案 0 :(得分:1)

  

修改python路径是实现这一目标的唯一方法吗?

是的。一种或其他方式,将仅使用sys.path中的路径。

修改PYTHONPATH是将路径追加到sys.path的一种方法,其他任何方法都将与向sys.path添加路径的作用相同。具体的变化确实取决于项目。

例如

export PYTHONPATH='/opt/mybuild'

[tmp]$ python3.6 -m site
sys.path = [
'/tmp',
'/opt/mybuild', 
'/usr/lib64/python36.zip',
'/usr/lib64/python3.6',
'/usr/lib64/python3.6/lib-dynload',
'/home/joe/.local/lib/python3.6/site-packages',
'/usr/lib64/python3.6/site-packages',
'/usr/lib/python3.6/site-packages',
]
USER_BASE: '/home/joe/.local' (exists)
USER_SITE: '/home/joe/.local/lib/python3.6/site-packages' (exists)
ENABLE_USER_SITE: True