Skip to content

Verifica a saúde da API antes dos testes de integração - #58

Merged
ThomasTDS merged 1 commit into
masterfrom
test/verificacao-de-saude
Oct 25, 2026
Merged

ThomasTDS merged 1 commit into
masterfrom
test/verificacao-de-saude

Conversation

@ThomasTDS

Copy link
Copy Markdown
Owner

Resumo

  • Nova fixture de sessão api_disponivel (conftest.py): chama o GET /ping uma vez, com o HealthApiClient. Se a API não responder ou não devolver 201, a fixture falha com API indisponível em <url>: <motivo>
  • Uma fixture automática faz a verificação na preparação de cada teste da pasta steps/. Não basta a context depender dela, porque no pytest-bdd a context só é pedida pelos steps, já durante o teste, e a falha apareceria como FAILED em vez de ERROR
  • A falha é lançada fora do except, para não carregar a exceção de conexão encadeada, que o only_rerun reconheceria e mandaria repetir
  • Os testes unitários não passam pela verificação e rodam mesmo sem a API
  • Estratégia de testes (PT e EN) e READMEs (PT e EN) atualizados

Antes e depois, com a API fora do ar

Antes Depois
Resultado 35 failed, 35 rerun 35 errors, 0 rerun
Tempo 5 min 25 s 5,6 s
Mensagem 35 rastros de erro de conexão API indisponível em <url>: <motivo>
Testes unitários 44 passed 44 passed

Test plan

  • mypy .
  • ruff check .
  • ruff format --check .
  • pytest com a API no ar: 79/79 passando
  • BASE_URL=http://localhost:9 pytest: 44 passed e 35 errors em 5,6 s, sem reruns
  • BASE_URL=http://localhost:9 pytest tests/unit: 44 passed, sem a API
  • BASE_URL=http://10.255.255.1 pytest steps, um endereço que não responde e faz cada chamada esperar 5 s: 35 errors em 6,2 s, o que confirma uma única chamada ao /ping

Uma fixture de sessão chama o GET /ping uma vez antes do primeiro cenário. Com a API fora do ar, cada teste de integração aparece como ERROR com o motivo, sem retry e em segundos (antes: 35 falhas e 35 reruns em mais de 5 minutos). Os testes unitários não passam pela verificação.
@codecov

codecov Bot commented Oct 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@ThomasTDS ThomasTDS closed this Oct 25, 2026
@ThomasTDS
ThomasTDS deleted the test/verificacao-de-saude branch October 25, 2026 12:25
@ThomasTDS
ThomasTDS restored the test/verificacao-de-saude branch October 25, 2026 12:25
@ThomasTDS ThomasTDS reopened this Oct 25, 2026
@ThomasTDS
ThomasTDS merged commit 6363b41 into master Oct 25, 2026
13 checks passed
@ThomasTDS
ThomasTDS deleted the test/verificacao-de-saude branch October 25, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant