解決pytest 的模組導入錯誤的PATH 問題
當使用pytest 在具有分層文件結構的項目上運行測試時,您可以從應用程式路徑匯入模組時遇到「ImportError:沒有名為...的模組」錯誤。這個問題是因為需要修改 sys.path 以包含必要模組的路徑。
pytest >= 7 的建議方法:pythonpath 設定
pytest 版本 7 以上版本提供了使用 pythonpath 設定值的簡化解決方案。這允許您將特定路徑新增至 sys.path,而不需要解決方法。在設定檔(pyproject.toml 或 pytest.ini)中,您可以指定要包含的路徑,例如:
[tool.pytest.ini_options] pythonpath = [ "." ]
[pytest] pythonpath = .
Original Answer for pytest 7:conftest解決方案
如果您使用的是舊版的pytest(低於7),您可以使用空的conftest.py解決方案。這涉及在專案根目錄中建立一個空的 conftest.py 檔案。這會觸發 pytest 會自動將 conftest.py 檔案的父目錄加入到 sys.path 中,解決匯入問題。說明
Pytest 在期間掃描 conftest 模組測試集合以收集客製化掛鉤和固定裝置。若要從這些模組匯入自訂對象,pytest 將 conftest.py 的父目錄新增到 sys.path。替代解決方案
此問題有其他解決方案,取決於在您的專案結構上:結論
透過調整sys.path 或使用conftest.py 解決方案,可以解決「ImportError:沒有名為...的模組」錯誤並確保在pytest 環境中成功執行測試。以上是在分層專案結構中使用 pytest 時,如何修復「ImportError: No Module Named...」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!