我有一些 Python 包和一些测试。文件排列如下http://pytest.org/latest/goodpractices.html#choosing-a-test-layout-import-rules http://pytest.org/latest/goodpractices.html#choosing-a-test-layout-import-rules
将测试放入实际应用程序之外的额外目录中
代码,如果您有很多功能测试或出于其他原因,则很有用
想要将测试与实际应用程序代码分开(通常是一个很好的选择)
主意):
setup.py # your distutils/setuptools Python package metadata
mypkg/
__init__.py
appmodule.py
tests/
test_app.py
我的问题是,当我运行测试时py.test
,我收到一个错误
导入错误:没有名为“mypkg”的模块
我可以通过安装包来解决这个问题python setup.py install
但这意味着测试是针对已安装包,而不是本地包,这使得开发非常繁琐。每当我进行更改并想要运行测试时,我都需要重新安装,否则我正在测试旧代码。
我能做些什么?
我知道这个问题已经结束了,但我经常使用的一个简单方法是调用pytest
via python -m
,从根(包的父级)开始。
$ python -m pytest tests
这有效是因为-m
选项将当前目录添加到 python 路径,因此mypkg
被检测为本地软件包(而不是已安装的软件包)。
See:
https://docs.pytest.org/en/latest/usage.html#calling-pytest-through-python-m-pytest https://docs.pytest.org/en/latest/usage.html#calling-pytest-through-python-m-pytest
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)