pytest fixture活学活用之 indirect

import pytest

user_data = ["user1", "user2"]


@pytest.fixture()
def login(request):
    return request.param in user_data  # 永远是True的判断


@pytest.mark.parametrize("login", user_data, indirect=True)
def test_login1(login):
    assert login is True
    # login(param) is True      执行login后 return回来确实是个True值


@pytest.mark.parametrize("login", user_data)
def test_login2(login):
    assert login is True
    # param is True             param只是个变量,所以这边AssertError了

request是pytest内置的一个fixture,他就是用来接收传入参数的,一般request.param连着一起用

原文地址:https://www.cnblogs.com/july401/p/14115464.html