Ich möchte Fixtures als Argumente von pytest.mark.parametrize oder etwas, das die gleichen Ergebnisse haben würde verwenden.pytest mit Fixtures als Argumente in parametrize
Zum Beispiel:
import pytest
import my_package
@pytest.fixture
def dir1_fixture():
return '/dir1'
@pytest.fixture
def dir2_fixture():
return '/dir2'
pytest.parametrize('dirname, expected', [(dir1_fixture, 'expected1'), (dir2_fixture, 'expected2')]
def test_directory_command(dirname, expected):
result = my_package.directory_command(dirname)
assert result == expected
Das Problem mit Halterung params ist, dass jeder param des Scheinwerfers wird jedes Mal, es gewöhnen laufen, aber ich will das nicht. Ich möchte wählen können, welche Geräte je nach Test verwendet werden.
Vielen Dank für Ihre Antwort, aber das ist nicht genau das, wonach ich suche. Soweit ich weiß, wird das Gerät "dirname" jedes Gerät einzeln nacheinander ausführen. Nach was ich suche, ist eine Weise, eine Befestigung von einem Test zu wählen, der auf Parametern basiert. – elveatles
Ich bin mir nicht sicher, ob ich dem folge, wonach Sie suchen. Wenn Sie jedoch eine Art von Logik haben, die Sie lieber in Ihrem Testfall ausführen möchten, der das Setup bestimmt, das Sie benötigen, können Sie das Fixture stattdessen dynamisch über request.getfixturevalue() von dort laden. – Will