Creo que no desea ocultar todas las advertencias, sino solo las que no son relevantes. Y en este caso, advertencias de depreciación de los módulos de Python importados.
Habiendo leído la documentación de Pytest sobre la captura de advertencias :
Tanto la opción de línea de comandos -W como la opción filterwarnings ini se basan en la opción -W y warnings.simplefilter de Python , así que consulte esas secciones en la documentación de Python para ver otros ejemplos y uso avanzado.
¡Entonces puedes filtrar las advertencias con la -W
opción de Python !
Parece que pytest
elimina por completo los filtros, porque muestra todos esos DeprecationWarning
cuando se ejecuta, y la documentación de Python sobre los filtros de advertencia predeterminados dice claramente:
En las versiones de versiones normales, el filtro de advertencia predeterminado tiene las siguientes entradas (en orden de prioridad):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Entonces, en su caso, si desea filtrar los tipos de advertencia que desea ignorar, como esos DeprecationWarning
, simplemente ejecute el comando pytest con la -W
opción:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
EDITAR : A partir del comentario de colini , es posible filtrar por módulo. Ejemplo para ignorar las advertencias de obsolescencia de todos los sqlalchemy:
ignore::DeprecationWarning:sqlalchemy.*:
A continuación, puede enumerar los módulos instalados que crean demasiado ruido en la salida de pytest
Úselo con un archivo en lugar de en la línea de comando:
Es posible que prefiera enumerar esos filtros en el archivo pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning