Python import src modules when running tests
我的源文件位于SRC下,我的测试文件位于测试下。当我想运行一个测试文件(比如python mytest.py)时,会得到一个导入错误:"没有名为asourcemodule.py的模块"。
如何从运行测试所需的源代码导入所有模块?
型
您需要将该目录添加到路径:
1 2 | import sys sys.path.append('../src') |
如果你经常使用的话,可以把它放到一个模块里。
型
如果您不想将源路径添加到每个测试文件或更改您的
假设您的目录结构如下:
1 2 3 4 5 6 7 | project package __init__.py module.py tests __init__.py test_module.py |
号
您应该在
如果您想从
您可以使用
1 | easy_install nose |
或
1 | pip install nose |
。
nose以更多的方式扩展了unittest,要了解更多关于它的信息,您可以查看他们的网站:https://nose.readthedocs.org/en/latest/
型
在我的系统(Windows10)上,我被要求执行如下操作:
1 2 3 | import sys import os sys.path.append(os.path.dirname(os.path.realpath(__file__)) +"/../src") |
直接将相对目录附加到
型
最好(最易管理)的解决方案似乎是使用virtualenv和setuptools/distribute来安装(src)包的andeblopment副本。这样,您的测试就可以在完全"安装"的系统上执行。