Думаю, ви не хочете приховувати всі попередження, а лише ті, які не мають значення. І в цьому випадку попередження про припинення використання імпортованих модулів python.
Прочитавши документацію до pytest про Warnings Capture :
Параметри командного рядка -W та опція filterwarnings ini базуються на власній опції -W та warnings.simplefilter Python , тому, будь ласка, зверніться до цих розділів у документації Python, щоб отримати інші приклади та вдосконалене використання.
Тож ви можете фільтрувати попередження за допомогою -W
опції python !
Здається, pytest
фільтри повністю видаляються, оскільки вони відображають усі ті, що DeprecationWarning
працюють, а в документації Python про попереджувальні фільтри за замовчуванням чітко сказано:
У звичайних збірках випусків за замовчуванням попереджувальний фільтр має такі записи (в порядку черговості):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Отже, у вашому випадку, якщо ви хочете сказати, щоб фільтрувати типи попереджень, які ви хочете ігнорувати, наприклад, такі DeprecationWarning
, просто запустіть команду pytest із -W
опцією:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
РЕДАГУВАТИ : З коментаря colini можна відфільтрувати за модулем. Приклад ігнорування попереджень про усунення від усіх sqlalchemy:
ignore::DeprecationWarning:sqlalchemy.*:
Потім ви можете перерахувати встановлені модулі, що створює занадто багато шуму на виході pytest
Використовувати з файлом, а не в командному рядку:
Ви можете віддати перевагу переліку цих фільтрів у файлі pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning