2016-02-11 105 views
1

目前我的項目的目錄被組織成以下結構:單元測試pytest

. 
+-- module1 
+-- module2 
... 
+-- moduleN 
+-- test 
    +-- test_module1_item1.py 
    ... 
    +-- test_moduleN_itemM.py 

但是,當我在我的上一級目錄執行py.test,它拋出一個錯誤,如:

ImportError: No module named 'module1'

如何聲明測試文件中的導入?或者我的項目結構應該如何定義以便將測試與其他代碼分開?

+3

是否都存在''__init __。py''?好像你沒有找到你的模塊。 – MSeifert

回答

1

我懷疑__init__.py./test

» ls * 
module1: 
__init__.py 

test: 
test_module1_item1.py 

缺失讓我們試試測試

» py.test 
... 
ERROR collecting test/test_module1_item1.py  
test/test_module1_item1.py:8: in <module> 
    import module1 
E ImportError: No module named module1 

這看起來像你的錯誤。

» touch test/__init__.py 
» py.test 

test/test_module1_item1.py:10: in <module> 
    assert 1 == 2 
E assert 1 == 2 

這看起來像您的解決方案。我懷疑py.test是根據./test是否是一個模塊來執行$ pythonpath。