如何在通用測試目錄結構中運行單元測試
在Python 中,通常的做法是在單獨的測試目錄中組織單元測試。然而,這提出瞭如何有效地執行這些測試的問題。
問題
當嘗試從測試目錄中執行 python test_antigravity.py 時,導入由於模組不在路徑上,反重力模組發生故障。修改 PYTHONPATH 或使用其他搜尋路徑技巧可能是可行的,但它們缺乏簡單性,特別是對於只想驗證測試結果的使用者。
解決方案
建議的方法是使用unittest命令列介面。它的 TestLoader 類別將必要的目錄新增到 sys.path 中,解決了路徑問題。
例如,在這樣的目錄結構中:
new_project ├── antigravity.py └── test_antigravity.py
您可以使用以下命令執行測試:
$ cd new_project $ python -m unittest test_antigravity
對於像提供的目錄結構:
new_project ├── antigravity │ ├── __init__.py │ └── antigravity.py └── test ├── __init__.py └── test_antigravity.py
您可以實現透過將反重力和測試聲明為帶有__init__.py文件的包來實現類似的功能。在測試模組中,您可以照常匯入反重力套件及其模組。
執行特定測試
執行單一測試模組,例如 test_antigravity.py :
$ cd new_project $ python -m unittest test.test_antigravity
您也可以執行單獨的測試案例或方法:
$ python -m unittest test.test_antigravity.GravityTestCase $ python -m unittest test.test_antigravity.GravityTestCase.test_method
執行所有測試
您可以使用測試發現自動執行所有測試。這要求測試模組和套件命名為test*.py (可透過-p 或--pattern 標誌自訂):
$ cd new_project $ python -m unittest discover
對於喜歡簡單的用戶,您可以指示他們執行以下命令命令:
To run the unit tests, do: $ python -m unittest discover
以上是如何在 Python 中從單獨的測試目錄高效運行單元測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!