Ao executar testes automatizados em Python, é comum receber avisos (warnings) durante a execução dos testes. Para lidar com esses avisos, o Pytest oferece diversas opções para desativá-los. Neste artigo vamos explorar como utilizar a PYTEST_ADDOPTS
para desabilita-los.
Entendendo o problema
Vamos imaginar que estamos executando testes em uma aplicação Python utilizando o Pytest e nos deparamos com a seguinte saída:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| ===================================== warnings summary ======================================
tests/test_translator.py::test_translator_hello_world
tests/test_translator.py::test_api_manager
/home/ztz/projects/ztranslator/.venv/lib/python3.10/site-packages/httpx/_config.py:156: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated
context = ssl.SSLContext(ssl.PROTOCOL_TLS)
tests/test_translator.py::test_translator_hello_world
tests/test_translator.py::test_api_manager
/home/ztz/projects/ztranslator/.venv/lib/python3.10/site-packages/httpx/_config.py:159: DeprecationWarning: ssl.OP_NO_SSL*/ssl.OP_NO_TLS* options are deprecated
context.options |= ssl.OP_NO_TLSv1
tests/test_translator.py::test_translator_hello_world
tests/test_translator.py::test_api_manager
/home/ztz/projects/ztranslator/.venv/lib/python3.10/site-packages/httpx/_config.py:160: DeprecationWarning: ssl.OP_NO_SSL*/ssl.OP_NO_TLS* options are deprecated
context.options |= ssl.OP_NO_TLSv1_1
-- Docs: https://docs.pytest.org/en/stable/warnings.html
|
Esses avisos podem ser gerados por diversos motivos, como o uso de funções obsoletas, comportamentos não recomendados, entre outros, e são úteis para que o desenvolvedor identifique possíveis problemas na sua aplicação ou nas bibliotecas utilizadas. No entanto, em alguns casos, eles podem não ser importantes para o teste em questão, sujando a tela e tirando o foco do resultado dos testes.