學習本篇是目的是自定義測試用例的預置條件
fixture對于setup和teardown的優勢如下:
(1)命名方式靈活,不局限于setup和teardown這幾個命名
(2)conftest.py配置里面可以實現數據共享,無需import導入,能自動找到一些配置
(3)scope="module"可以實現多個.py跨文件共享前置,每一個.py文件調用一次
(4)scope="session"以實現多個.py跨文件使用一個session來完成多個用例
同一個文件fixture參數傳入
使用裝飾器帶參數或不帶參數定義fixture,會在運行測試之前調用fixture
scop有四個級別參數 "function" (默認,針對函數有效), "class","module","session"
autouse默認false,需要參考激活fixture;如果為true,所有測試激活fixture func才能看到
name默認裝飾函數名稱,如果fixture在定義它的同一模塊中使用,夾具的功能名稱將被請求夾具的功能遮蔽;
解決這個問題的一種方法是將裝飾函數命名為:
? "fixture_ <fixturename>"然后使用"@ pytest.fixture(name ='<fixturename>')"
多個文件調用一個功能,使用conftest.py配置文件,來單獨管理一些預置的操作場景,pytest默認讀取配置文件里面的配置。
注意:
conftest.py 配置文件名稱固定,不能修改
conftest.py 配置文件與運行的用例在一個pakage下,且包含__ini__.py文件
無需導入conftest.py ,pytest自動查找
創建pakage自動生成__ini__.py? 文件
conftest.py配置文件
用例文件1
用例文件2
執行結果如下:
執行結果