Acho que você não quer esconder todos os avisos, mas apenas aqueles que não são relevantes. E, neste caso, avisos de depreciação de módulos Python importados.
Ler a documentação do pytest sobre Captura de avisos :
A opção de linha de comando -W e a opção filterwarnings ini são baseadas na opção -W do próprio Python e warnings.simplefilter , portanto, consulte essas seções na documentação do Python para outros exemplos e uso avançado.
Assim, você pode filtrar avisos com a -W
opção do python !
Parece que pytest
remove completamente os filtros, porque mostra todos eles DeprecationWarning
durante a execução, e a documentação do Python sobre Filtros de Aviso Padrão diz claramente:
Em versões regulares, o filtro de aviso padrão tem as seguintes entradas (em ordem de precedência):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Portanto, no seu caso, se você quiser filtrar os tipos de aviso que deseja ignorar, como esses DeprecationWarning
, basta executar o comando pytest com a -W
opção:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
EDITAR : A partir do comentário do colini , é possível filtrar por módulo. Exemplo para ignorar avisos de suspensão de uso de todos os sqlalchemy:
ignore::DeprecationWarning:sqlalchemy.*:
Você pode então listar seus módulos instalados que criam muito ruído na saída de pytest
Use com arquivo em vez de linha de comando:
Você pode preferir listar esses filtros no arquivo pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning