已不再支援此瀏覽器。
請升級至 Microsoft Edge,以利用最新功能、安全性更新和技術支援。
在 conftest.py 檔案中定義 fixture 有什麼實用功能?
相同目錄及其子目錄中的測試可以依名稱要求這些 fixture,而不需要匯入。
conftest.py 中定義的設定只有在測試檔案匯入時才會執行。
conftest.py 中的 fixture 只能由完全相同檔案中的測試要求。
怎樣的測試才適合 @pytest.mark.parametrize?
@pytest.mark.parametrize
在相同的測試邏輯需要對多組輸入值或輸入與期望值配對執行時。
當需要在一個測試函式中檢查無關行為時,
當測試需要平行執行時。
你如何參數化一個需要同時輸入值和期望值的檢定?
使用逗號分隔的參數-名稱字串及元組列表,例如 @pytest.mark.parametrize("test_input, expected_value", [("3+5", 8), ("3*4", 12)])。
@pytest.mark.parametrize("test_input, expected_value", [("3+5", 8), ("3*4", 12)])
所有輸入值用一個清單,期望值則用一個獨立且無關的清單。
避免使用多個參數名稱,因為 pytest 不支援這些名稱。
scope="module" 對 pytest fixture 有什麼作用?
scope="module"
Pytest 會為模組建立並快取一個 fixture 值,然後在 pytest 完成該模組中的最後一項測試後,於模組拆除期間將其拆除。
Pytest 會在模組中每次斷言之前建立一個新的固定件值。
Pytest 讓固定裝置在不需要檔案 conftest.py 的情況下即可使用。
conftest.py
在以yield為基礎的系統中,yield之後的程式碼什麼時候執行?
yield
在要求的測試或 fixture 範圍完成後,於拆除期間執行。
在 pytest 將 fixture 值傳遞給測試之前。
只有當測試失敗時才會這樣。
在測試中取代函式或環境值時,為什麼要使用 monkeypatch fixture?
monkeypatch
它會在要求的測試或 fixture 完成後,自動復原變更。
它會永久更改應用程式程式碼,使後續測試時看到相同的值。
它會並行執行參數化測試。
您必須先回答所有問題,才能檢查進度。
此頁面對您有幫助嗎?
需要本主題的協助嗎?
想要嘗試使用 Ask Learn 來釐清或引導您完成本主題嗎?