给定模块设置如下:
myproject
├── MANIFEST.in
├── README.md
├── build
├── dist
├── examples
│ ├── __init__.py
│ ├── mypackage-example.py
│ ├── mypackage-simple-v1.py
│ ├── mypackage-simple-v2-report.py
│ └── mypackage-simple-v2.py
├── mypackage
│ ├── PKG-INFO
│ ├── __init__.py
│ ├── api_methods.py
│ ├── config.py
│ ├── connector.py
│ ├── contrib.py
│ ├── examples
│ │ ├── __init__.py
│ │ ├── mypackage-example.py
│ │ ├── mypackage-simple-v1.py
│ │ ├── mypackage-simple-v2-report.py
│ │ └── mypackage-simple-v2.py
│ ├── qcache
│ │ ├── __init__.py
│ │ └── redis.conf
│ ├── mypackage.egg-info
│ │ ├── PKG-INFO
│ │ ├── PKG-INFO.bak
│ │ ├── PKG-INFO.bak-e
│ │ ├── SOURCES.txt
│ │ ├── dependency_links.txt
│ │ ├── requires.txt
│ │ └── top_level.txt
│ ├── settings.py
│ ├── setup.cfg
│ ├── tests
│ │ └── test_qualys_cache.py
│ ├── util.py
│ └── version.py
└── setup.py
我希望在mypackage.tests中进行测试我在qcache扩展模块上遇到依赖相对导入的问题。该模块依赖于(并且必须依赖于)父模块。我试图通过相对导入引入父模块需求,如下所示:
from .. import api_methods, connect
哪个适用于顶级项目路径,但不适用于模块本身。我是否正确进行pypi标准单元测试?我真的很喜欢写pypi鸡蛋所以任何建议都值得赞赏。
现在我按照以下方式运行我的测试(来自项目,而不是包目录)
python -m unittest mypackage.tests.test_qualys_cache
答案 0 :(得分:0)
我使用了virtualenv和virtualenvwrapper使用nose2和setuptools。这解决了我跨实例的相对导入问题。