概述
在編寫自動化測試時,如何讓 Pytest 自動找到你的測試代碼 是一個非常基礎但重要的問題。Pytest 通過其強大的 測試發現(Test Discovery)機制,能夠自動掃描項目目錄、識別測試模塊和測試函數,從而大大簡化了測試流程。
本文將為你詳細講解 Pytest 的測試發現機制,包括其基本原理、常見命名規則、自定義配置方式,并結合實操示例幫助你更好地理解和使用它。
什么是測試發現?
測試發現(Test Discovery) 是指 Pytest 在執行 pytest
命令時,會根據一定的規則自動查找并運行所有符合條件的測試模塊和測試函數的過程。
這種“約定優于配置”的設計使得開發者無需手動注冊測試用例,極大地提高了測試效率和可維護性。
測試發現的基本原理
Pytest 會從當前工作目錄或指定路徑開始遞歸搜索以下內容:
匹配測試模塊(文件)
- 文件名以
test_
開頭 或 以_test
結尾。 - 示例:
test_sample.py
、sample_test.py
匹配測試函數
- 函數名以
test_
開頭。 - 示例:
def test_add():
匹配測試類
- 類名以
Test
開頭(且不帶__init__
方法)。 - 示例:
class TestMultiplyFunction:
匹配測試方法
- 方法名以
test_
開頭。 - 示例:
d