我在將任何東西導入到我打算使用py.test運行的測試文件中時遇到問題。從兄弟目錄導入模塊以便與py.test一起使用
我有一個項目的結構如下:
/ProjectName
|
|-- /Title
| |-- file1.py
| |-- file2.py
| |-- file3.py
| |-- __init__.py
|
|-- /test
| |-- test_file1.py
我一直沒能得到與pytest工作test_file1.py
文件中任何的import語句,所以我目前只是嘗試使用file_1.py
聲明的變量並在test_file1.py
運行時打印出來。
file1.py包含:
file1_variable = "Hello"
test_file1.py包含:
import sys
import os
sys.path.append(os.path.abspath('../Title'))
import file1
def test_something():
assert file1.file1_variable == "Hello"
print(file1.file1_variable)
從我的測試文件中的import語句從https://stackoverflow.com/a/10272919/5477580其中工程通過編輯PYTHONPATH變量取。這使我可以運行test_file1.py
腳本併成功執行print
聲明。
然而,試圖從/ProjectName
目錄運行py.test
給了我一個錯誤說ImportError: No module named 'file1'
是否有某種方式,我可以構建更好的東西,這樣pytest將是可能的嗎?我需要爲我的__init__.py
文件添加一些內容嗎?
這是工作,非常感謝你。我想我只是曲解了分層導入語句的結構。但是,如果file1.py中有import語句,似乎pytest會再次遇到錯誤。例如,說file1.py從file2.py中導入一些函數,運行pytest然後會說沒有名爲file2.py的模塊。我是否必須在測試文件中明確聲明每一個? – Shinkawa91