2015-11-30 25 views
1

給出一個模塊的設置如下:Python的單元測試擴展模塊相對進口「適當的」處理

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 

,我想有我有與qcache擴展模塊上依賴進口的相關問題mypackage.tests內測試。該模塊依賴於(並且必須依賴於)父模塊。我試圖通過相對進口帶來父模塊要求如下:

from .. import api_methods, connect 

從頂級項目路徑的作品,但不能從模塊內部。我是否正在爲pypi標準單元測試做這個工作?我對編寫pypi雞蛋真的很陌生,所以對此有任何建議我都很感激。

現在我正在我的測試如下(從項目,不包目錄)

python -m unittest mypackage.tests.test_qualys_cache 
+0

我建議你使用鼻子或pytest進行單元測試。 –

+1

嘗試添加'__init __。py'文件到測試目錄 –

+0

@LFJ是否是標準程序?我並不在意單元測試的用途,但我不想花時間去熟悉那些不是的東西。 – SkyLeach

回答

0

我結束了使用nose2和setuptools的用的virtualenv和virtualenvwrapper。這解決了跨實例的相對導入問題。