6
我有以下佈局:如何正確導入py.test包?
/spamalot
/spam
__init__.py
spam.py
/spam_on_eggs
__init__.py
spam_on_eggs.py
/tests
test_spam.py
垃圾郵件恰好是一個燒瓶中的應用。
在spam.py
我
import spam_on_eggs.spam_on_eggs as eggs
# Other Flask setup & application code here.
而且能正常工作 - 從spamalot
目錄我能夠運行python spam/spam.py
然而,當我開始投擲試驗混進去,它不是真棒。
在我test_spam.py
文件我有:通過把__init__.py
在
/spamalot/ $ py.test
# some output
E ImportError
我可以解決這個問題:
import spam.spam
test_client = spam.spam.app.test_client()
def test_it_fails():
assert False
然而,而不是失敗,我所期望的,它無法對進口線我的/tests
文件夾,但然後我得到不同的ImportError:
spam/spam.py:1: in <module>
> import spam_on_eggs.spam_on_eggs as eggs
E ImportError: No module named 'spam_on_eggs'
我可以解決是一個通過改變線路:
from spam.spam_on_eggs import spam_on_eggs
,讓我來測試但然後我打破我跑$ python spam/spam.py
能力 - 因爲我得到
ImportError: no module named 'spam'
顯然我在理解模塊導入的工作原理以及py.test如何與此係統協同工作方面存在差距。
我錯過了什麼?
它甚至可以擁有我描述的佈局 - 並且能夠從spamalot目錄運行py.test和我的服務器?
這將使火腿騎士到一個模塊中,不是嗎?這實際上並不是我正在尋找的 - 如果我想在同一個模塊中進行測試,我會將它們作爲垃圾郵件的子模塊來粘貼 –
此外,實際上並沒有工作('ImportError') –
這取決於超級目錄'spamalot'。有沒有'__init __。py'?看看鏈接。另外考慮添加一個路徑到'sys.path'。 – User