diff --git a/README.md b/README.md index a2063e6..8d0dcd5 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ qa-api-python/ ├── conftest.py # Fixtures (contexto por cenário) e captura de evidência de falha ├── pyproject.toml # Dependências, scripts e configuração (pytest, ruff, mypy) ├── .pre-commit-config.yaml # Hooks de pre-commit (ruff, mypy) +├── codecov.yml # Metas de cobertura que bloqueiam o merge no Codecov ├── LICENSE └── README.md # Este arquivo ``` @@ -91,6 +92,8 @@ O CI roda `mypy`, `ruff check`, `ruff format --check` e `pip-audit` antes dos te Cada execução de `pytest` já gera cobertura de `api/` e `models/` (código dos API Clients e dos schemas), impressa no terminal e também em `reports/coverage.xml` (não versionado). No CI esse arquivo é enviado para o [Codecov](https://codecov.io/gh/ThomasTDS/qa-api-python), que mantém o histórico e mostra o badge no topo deste README. +O Codecov também bloqueia o merge do PR (configuração em `codecov.yml`) se: o código novo/alterado no PR (`patch`) não vier 100% coberto, ou se a cobertura total do projeto (`project`) cair mais de 1 ponto percentual — uma margem pequena, só pra não travar por causa de arredondamento. + Um hook de pre-commit (framework `pre-commit`, instalado via `pre-commit install` após o `pip install`) roda `ruff --fix` e `ruff format` nos arquivos staged, e também `mypy .` no projeto inteiro, antes de cada commit — então a maioria dos problemas de lint, formatação ou tipo já é pega localmente antes de chegar no CI. ### Rodar contra outra URL diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..a81732b --- /dev/null +++ b/codecov.yml @@ -0,0 +1,9 @@ +coverage: + status: + project: + default: + target: auto + threshold: 1% + patch: + default: + target: 100%