Как я могу пройти текущий (работающий) тестовый модуль в приборах, которые находятся в контесте? - PullRequest
0 голосов
/ 20 ноября 2018

Я хотел бы знать, как передать текущий работающий тестовый модуль в прибор или как прибор может это узнать?(Мне нужно загрузить определенный файл конфигурации для каждого тестового модуля внутри пакета).

Я могу создать прибор в каждом тестовом модуле, но я хочу более универсальное решение.Заранее спасибо.

1 Ответ

0 голосов
/ 20 ноября 2018

Как правило, вы можете ввести имя модуля в прибор следующим образом:

@pytest.fixture
def fixture_global(request):
    module_name = request.module.__name__
    print(module_name) 
    # some logic depends on module name

Это может быть даже глобальное приспособление в conftest, но этот способ не работает с фиксаторами области сеанса , потому что они не вызываются каждым модулем, который его использует.


Если вы хотите иметь базовый общий код фикстуры и, кроме того, какой-то конкретный код для конкретных модулей, я бы предложил лучший способ.

В глобальный conftest.py положить «базовый» светильник с универсальным кодом. Если вы хотите использовать его в конкретном тестовом модуле, просто введите глобальный фиксатор в локальный. Примерно так:

conftest.py

@pytest.fixture
def global_fixture():
  # universal code for vary modules
  return universal_obj

test_module.py

@pytest.fixture
def local_fixture(global_fixture):
  # specific code that uses global fixture result
...