1?? 設計理念
?? unittest :
是 Python 標準庫的一部分,設計靈感來自 Java 的 JUnit,強調面向對象的測試模式。
測試用例需要繼承 unittest.TestCase 類,測試方法以 test_ 開頭。
更適合傳統、結構化的測試開發方式。
? pytest :
是一個第三方測試框架,設計上更靈活,更注重簡潔性和易用性。
不需要繼承特定類,也不強制使用特定的命名規則,測試函數可以直接用普通函數定義。
支持更豐富的插件生態,可以擴展更多功能。
?? ?
2?? 使用方式
?? unittest :
測試用例組織在類中,每個測試方法必須以 test_ 開頭。
使用內置的斷言方法(如 assertEqual 等)。
需要手動運行測試用例,通常通過 unittest.main() 。
? pytest :
測試用例通常以普通函數形式定義,函數名以 test_ 開頭。
支持直接使用 Python 的內置斷言,更簡潔直觀。
提供命令行工具 pytest ,運行測試更方便。
?? ?
3?? 功能特性
?? unittest :
功能較為基礎,主要用于簡單的單元測試。
提供了測試用例、測試套件、測試啟動器等基本組件。
擴展性有限,但可以通過第三方庫增強功能。
? pytest :
提供了豐富的內置功能,如參數化測試、自動發現測試用例、豐富的斷言支持。
支持 fixtures(測試夾具),便于管理測試環境。
插件生態豐富,可以通過插件擴展更多功能,如測試報告、代碼覆蓋率等。
?