通過前面學習fixture可以正常的代替setup和teardown,我們在后期框架中的檔案名過多,或者函式名過多,有時會和fixture名字進行重名,或者fixture呼叫容易出錯,fixture也可以進行重新自己更改自己的名稱
fixture重命名
在fixture原始碼中我們可以通過修改name的引數來更改fixture的名稱,默認是我們定義def的名稱
def fixture( # noqa: F811 fixture_function: Optional[_FixtureFunction] = None, *, scope: "Union[_Scope, Callable[[str, Config], _Scope]]" = "function", params: Optional[Iterable[object]] = None, autouse: bool = False, ids: Optional[ Union[ Iterable[Union[None, str, float, int, bool]], Callable[[Any], Optional[object]], ] ] = None, name: Optional[str] = None
說這么多,大家也不知道說的啥,舉個例子吧,這里我把函式名為login的fixture通過配置引數name=“anjing_login”
# test__01.py import pytest @pytest.fixture(name='anjing_login') def login(): print('輸入賬號,輸入密碼') print('完成登錄功能!!!!') yield print('---退出登錄---') class Test_Login: def test_01(self, anjing_login): print('------用例01------') def test_02(self): print('------用例02------') def test_03(self,anjing_login): print('------用例03------') if __name__ == '__main__': pytest.main(['-s', 'test__01.py'])

這里發現我們通過使用anjing_login 就直接呼叫了更改名前的login,
注意:當我們進行對fixture重命名后,如果再次呼叫以前的名字就會出現報錯
import pytest @pytest.fixture(name='anjing_login') def login(): print('輸入賬號,輸入密碼') print('完成登錄功能!!!!') yield print('---退出登錄---') class Test_Login: def test_01(self, login): print('------用例01------') def test_02(self): print('------用例02------') def test_03(self, anjing_login): print('------用例03------') if __name__ == '__main__': pytest.main(['-s', 'test__01.py'])

安靜這里把用例1繼續呼叫以前的名稱,執行后,就會通過報錯,所以小伙伴要特別注意,如果修改了name名稱后,就需要呼叫重命名的名稱,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252937.html
標籤:其他
上一篇:低代碼快速實作介面自動化測驗?什么是零代碼/低代碼?
下一篇:如何開始使用介面自動化測驗腳本
