У меня есть сотни тестовых сценариев, которые я добавляю в среду разработки, которую я создаю.Каждый сценарий должен открыть соединение с нашим тестируемым устройством, выполнить ряд задач и закрыть.Соединение создается и закрывается через прибор.Также хочу добавить, что необходимо установить новое соединение для каждого отдельного скрипта, который выполняется (т. Е. На уровне модуля, а не на уровне области действия или функции).
У меня это работает с прибором в том же файле, что и задачи.Примерно так.
my_test.py
...
@pytest.fixture(scope='module')
def setup(request):
global connection
with target.Connect() as connection:
yield connection
def teardown():
connection.close
request.addfinalizer(teardown)
@pytest.mark.usefixtures("setup")
def test_query_device_info():
global connection
connection.write('echo $PATH')
connection.write('echo $HOME')
...
Поскольку у меня есть сотни тестов, я не хочу копировать один и тот же код для каждого файла, поэтому мне нужнообщее приспособление, которое может использоваться каждым тестом.Я попытался добавить этот прибор в conftest.py, и соединение создается, но не удается, когда он попадает в команду connection.write.
conftest.py
...
@pytest.fixture
def setup(request):
global connection
with target.Connect() as connection:
yield connection
def teardown():
connection.close
request.addfinalizer(teardown)
my_test.py
...
@pytest.mark.usefixtures("setup")
def test_query_device_info():
global connection
connection.write('echo $PATH')
Как я могу иметь этот прибор в общем месте, которое доступно для всех моих тестов и правильно создает соединение, которое я могу использовать в своих скриптах?
Обратите внимание, что они выполняются через IDE pyCharm, а не непосредственно в командной строке.