@pytest.fixture(scope=“function”, ids=None, name=None, params=None, autouse=False)
- scope:“function”(default),“class”, “module”, “package” or “session” 这个不作细述“请点击这里查看”
- ids:字符串id的列表,每个id对应于参数,是测试id的一部分,如果没有提供id,它们将从参数自动生成标识。
- params:一个可选的参数列表,它将导致对fixture函数和使用它的所有测试的多次调用。当前参数在"request.param"中可用。
- name:可以理解成为这前置函数取个别名。
- autouse:为True的话就是开启,开启后范围的方法都会自动去执行。
1、ids参数
# conftest.py
import pytest
@pytest.fixture(ids=['look', 'see', 'watch'], params=[1, 2, 3])
def common_login(request):
yield request.param
用例调用:
# test_account_login.py
import pytest
@pytest.mark.usefixtures('common_login')
class TestUserLogin:
def test_01_user_login(self):
assert 1 == 1
if __name__ == '__main__':
pytest.main(['-v', '-s', 'test_account_login.py'])
运行结果:
D:\python_env\Scripts\python.exe F:/TESTING/exercise/test_package/test_account_login.py
============================= test session starts =============================
collecting ... collected 3 items
test_account_login.py::TestUserLogin::test_01_user_login[look] PASSED
test_account_login