Pytest игнорирует предупреждение в приспособлении

#python #pytest

#python #pytest

Вопрос:

У меня есть устройство, которое я использую:

 @pytest.fixture(scope='module')
def dask_client():
    cluster = LocalCluster(n_workers=None, threads_per_worker=2)
    client = Client(cluster)
return client

def test_some_func(x, dask_client):
    # Do something
    return
  

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

 @pytest.mark.filterwarnings("ignore:some regex to match")
  

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

Ответ №1:

Используйте флаг —disable-warnings в вашем pytest marker cmd, чтобы подавить все предупреждения. Об обнаружении этих предупреждений вы можете обратиться к официальной документации: https://docs.pytest.org/en/latest/warnings.html

Комментарии:

1. Но я не хочу подавлять предупреждения, поскольку это было бы опасно. Я бы предпочел перехватывать и обрабатывать все предупреждения, которые я ожидаю, чтобы я мог видеть и понимать, когда что-то пойдет не так.

2. Вы можете создать отдельный маркер для обработки ошибок. Как показано в ссылке «@pytest.mark.filterwarnings».