主要從官網(wǎng)上面學(xué)習(xí)。
pytest fixtures: 顯示化、模塊化、可擴展
軟件測試fixtures初始化測試函數(shù)。fixtures提供了固定基線,以便測試可靠執(zhí)行并產(chǎn)生一致的、可重復(fù)的結(jié)果。初始化可啟動服務(wù)、狀態(tài)或其他可操作環(huán)境。測試函數(shù)通過參數(shù)來訪問,對于每個測試函數(shù)使用的fixture,通常在測試函數(shù)的定義中都有一個參數(shù)(以fixture命名)。
pytest fixtures在傳統(tǒng)的setup/teardown函數(shù)的xUnit樣式上有重大改進:
··fixtures有明確的名字,并且通過從測試函數(shù)、模塊、類或整個項目中聲明其使用方法來激活。
··fixtures以模塊化的方式來實現(xiàn),每個fixture名稱會觸發(fā)一個fixture function,該fixture function本身也可以使用其他fixtures。
··fixture管理范圍從簡單的unit到復(fù)雜的功能性測試,可以根據(jù)配置和組件選項來對fixtures和tests進行參數(shù)化,或者在函數(shù)、類、模塊或整個測試會話范圍內(nèi)重復(fù)使用fixture。
此外,pytest繼續(xù)支持傳統(tǒng)xuint樣式設(shè)置。你可以混合兩種,并根據(jù)需要從傳統(tǒng)樣式逐步過渡到新的樣式,也可以從現(xiàn)有的unittest.TestCase或nose based項目開始。
Fixtures使用@pytest.fixture裝飾器來定義,如下描述。pytest有內(nèi)置fixtures,如下列出:這塊還沒有搞懂怎么操作
捕獲,作為文本輸出到文件描述符1和2
捕獲,作為字節(jié)輸出到文件描述符1和2
控制日志記錄和訪問日志條目。
捕獲,作為文本的輸出到sys.stdout和sys.stderr。
捕獲,作為字節(jié)的輸出到sys.stdout和sys.stderr。
cache
在pytest運行期間存儲和檢索值。
提供一個插入docstests命名空間的字典。
臨時修改類,函數(shù),字典,os.environ和其他對象。
訪問配置值,插件管理和插件掛鉤。
向測試中添加其他屬性。
向測試套件中添加其他屬性。
記錄測試函數(shù)發(fā)出的警告。
提供有關(guān)正在執(zhí)行的測試函數(shù)的信息。
提供一個臨時測試目錄,以幫助運行和測試pytest插件。
提供pathlib.Path對象給每個測試函數(shù)唯一的臨時目錄。
創(chuàng)建會話范圍的臨時目錄并返回pathlib.Path對象。
為每個測試函數(shù)唯一的臨時目錄提供py.path.local對象; 由tmp_path代替。
創(chuàng)建會話范圍的臨時目錄并返回py.path.local對象; 由tmp_path_factory代替。