Projeto de estudo de testes com:
- FastAPI (API)
- Pytest (testes)
- pytest-mock (mock)
- SQLAlchemy + SQLite em memória (teste de banco)
- pytest-cov (coverage)
- GitHub Actions (CI/CD)
ambiente-teste/
├─ app/
│ ├─ __init__.py
│ ├─ main.py
│ ├─ services.py
│ └─ db.py
│
├─ tests/
│ ├─ __init__.py
│ ├─ test_services.py
│ ├─ test_api.py
│ └─ test_db.py
│
├─ .github/
│ └─ workflows/
│ └─ tests.yml
│
├─ .gitignore
├─ requirements.txt
├─ pyproject.toml
├─ README.md
└─ venv/
- Python 3.11 ou superior
- Git (opcional, para versionamento)
Crie e ative o ambiente virtual:
python -m venv venv
.\venv\Scripts\Activate.ps1Crie e ative o ambiente virtual:
python3 -m venv venv
source venv/bin/activateCom o ambiente virtual ativo:
pip install -r requirements.txtRodar todos os testes:
pytestRodar testes com relatório de cobertura:
pytest --cov=app --cov-report=term-missingListar testes sem executar:
pytest --collect-onlyPara subir o servidor localmente:
uvicorn app.main:app --reloadAcesse no navegador:
- Health check: http://127.0.0.1:8000/health
- Documentação interativa: http://127.0.0.1:8000/docs
O projeto utiliza GitHub Actions para executar automaticamente:
- Instalação de dependências
- Execução de testes
- Análise de cobertura
A cada push ou pull request, o workflow é acionado.
Arquivo de configuração:
.github/workflows/tests.yml