Pytest學習筆記3:fixture配置用例預置條件
阿新 • • 發佈:2018-12-04
setup和teardown可以實現在測試用例之前或之後加入一些操作,但這種是整個指令碼全域性生效的,如果我想實現以下場景:
用例1需要先登入,用例2不需要登入,用例3需要先登入。很顯然這就無法用setup和teardown來實現了。這就是本篇學習的目的,自定義測試用例的預置條件
firture相對於setup和teardown來說應該有以下幾點優勢
- 命名方式靈活,不侷限於setup和teardown這幾個命名
- conftest.py 配置裡可以實現資料共享,不需要import就能自動找到一些配置
- scope=”module” 可以實現多個.py跨檔案共享前置
- scope=”session” 以實現多個.py跨檔案使用一個session來完成多個用例
conftest.py 管理一些預置的操作場景
- conftest.py配置指令碼名稱是固定的,不能改名稱
- conftest.py與執行的用例要在同一個pakage下,並且有init.py檔案
- 不需要import匯入 conftest.py,pytest用例會自動查詢
conftest.py
import pytest
@pytest.fixture()
def login():
print("輸入賬號,密碼先登入")
test_fix1.py
import pytest def test_s1(login): print("用例1:登入之後其它動作111") def test_s2(): # 不傳login print("用例2:不需要登入,操作222") def test_s3(login): print("用例3:登入之後其它動作333") if __name__ == "__main__": pytest.main(["-s", "test_fix1.py"])
執行結果:
test_fix1.py
輸入賬號,密碼先登入
.用例1:登入之後其它動作111
.用例2:不需要登入,操作222
輸入賬號,密碼先登入
.用例3:登入之後其它動作333