#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».