Chciałbym użyć urządzeń jako argumentów pytest.mark.parametrize lub czegoś, co miałoby takie same wyniki.pytest używający urządzeń jako argumentów w parametrize
Na przykład:
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
Problem z terminarza params jest to, że każdy param oprawy będzie się uruchamiać za każdym razem, gdy jest używany, ale nie chcę tego. Chcę móc wybrać, które urządzenia będą używane w zależności od testu.
Dziękuję za odpowiedź, ale nie jest to dokładnie to, czego szukam. Z tego co wiem, urządzenie dirname będzie uruchamiało każde urządzenie pojedynczo. To, czego szukam, to sposób na wybranie urządzenia z testu opartego na parametrach. – elveatles
Nie jestem pewien, czy podążam za tym, czego szukasz. Niemniej jednak, jeśli masz jakąś logikę, którą chciałbyś wykonać w swoim przypadku testowym, która określa wymaganą konfigurację, możesz zamiast tego dynamicznie ładować urządzenie przez request.getfixturevalue(). – Will