Ich möchte den Ausgang eines Pytest Fixture parametrisieren. Zum Beispiel, sagen wir, ich habe zwei Befestigungen:parametrieren Ausgang von Pytest Fixture
# contents of test_param.py
import pytest
@pytest.fixture(params=[1,2])
def fixture_1(request):
return request.param
@pytest.fixture
def fixture_2(fixture_1):
for num in range(5): # the output here should be parametrized
return '%d_%s' % (fixture_1, num) # but only returns first iteration
def test_params(fixture_2):
print (fixture_2)
assert isinstance(fixture_2, str)
Dann, wenn ich laufen die folgenden:
py.test test_param.py
Nur die erste Iteration von Halterung 2 für jeden param im Vorrichtungsbau 1. geben wird Wie kann ich parametriere die Ausgabe von fixture_2 so, dass jede Iteration in der for-Schleife an die Funktion test_params übergeben wird?
Edit: Nehmen wir an, das zweite Fixture kann nicht auf die gleiche Weise wie das erste Fixture parametrisiert werden, da im realen Problem die Ausgabe des zweiten Parameters von der Eingabe des ersten Fixtures abhängt.
In diesem Beispiel würde es funktionieren, aber was ist, wenn die Ausgabe der zweiten von der Eingabe von der ersten abhängt? In dem Test, an dem ich gerade arbeite, gibt das erste Fixture ein Verzeichnis und das zweite eine Untermenge der Dateien im Verzeichnis zurück. – derchambers
py.test unterstützt derzeit keine abhängige Parametrisierung – Ronny