Ich versuche, drei verschiedene Vorrichtungen zu meinem pytest.mark.parameterize
Dekorateur passieren, wie folgt aus:Wie kann ich Fixtures an pytest.mark.parameterize übergeben?
@pytest.mark.parametrize("credentials, return_code", [
(user1, 200),
#(user2, 200),
#(user3, 401)
])
def test_login():
assert True
# Actual test uses response.return_code == return_code
Allerdings bekomme ich einen Fehler, der lautet:
NameError: name 'user1' is not defined
Dies aber nicht richtig ist, ich habe definiert es in conftest.py
:
user1_info = [('user1', 'password')]
@pytest.fixture(params=user1_info)
def user1(request):
return request.param
Die Leuchte funktioniert, wenn ich meinen Test ändern, so zu sein:
def test_login(user1):
assert True
# Actual test uses response.return_code == return_code
Das Problem ist, dass, wenn ich es auf diese Weise zu tun, ich habe drei separate Tests zu schreiben, eine für jedes Gerät und für jede status_code Prüfung . Wenn ich parameterize
verwenden könnte, könnte ich eine Funktion verwenden und den Benutzer/erwarteten Rückkehrcode überprüfen.
Wie kann ich meine Leuchten verwenden, die Teil der pytest.mark.parameterize
Dekorateur sind?