Ir al contenido

Testing

Fichero de configuración: backend/pyproject.toml.

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
pythonpath = ["."]

Con Docker:

Ventana de terminal
docker compose exec backend pytest -q

Con uv:

Ventana de terminal
cd backend
uv run pytest -q
Ventana de terminal
cd backend
uv run pytest backend/tests/test_budget_recalc_conceptos.py -q
Módulo Tests
Presupuestos backend/tests/test_budget_api_endpoints.py, backend/tests/test_budget_recalc.py, backend/tests/test_budget_clone.py
Mediciones backend/tests/test_budget_measurements.py
Descompuesto backend/tests/test_budget_recalc_legacy.py
Variables backend/tests/test_budget_variables.py
Certificaciones backend/tests/test_certification_presto_fields.py, backend/tests/test_certification_presto_create.py
BC3 backend/tests/test_bc3_parser.py, backend/tests/test_bc3_calc.py, backend/tests/test_bc3_import_ajuste.py, backend/tests/test_bc3_titulo_desclarga.py
Auth / roles backend/tests/test_auth.py, backend/tests/test_roles.py
Gantt backend/tests/test_gantt.py, backend/tests/test_gantt_scheduler.py, backend/tests/test_gantt_drag_drop.py, backend/tests/test_gantt_constraints.py

Configuración: frontend/vitest.config.ts.

Ventana de terminal
cd frontend
npm run test:run

Con cobertura:

Ventana de terminal
npm run test:coverage
frontend/src/tests/
frontend/src/hooks/__tests__/
frontend/src/components/**/__tests__/
frontend/src/utils/__tests__/
  • frontend/src/tests/budgets/*.test.tsx
  • frontend/src/tests/certifications/*.test.tsx
  • frontend/src/tests/shell/*.test.tsx

También hay tests E2E con Playwright:

Ventana de terminal
cd frontend
npm run test:e2e

Contra producción:

Ventana de terminal
npm run test:e2e:prod
  • Cada test debe ser independiente (no depender de estado de otros tests).
  • Usar fixtures y helpers compartidos (backend/tests/conftest.py, frontend/src/test/setup.ts).
  • Tests de backend con base de datos transaccional y rollback.
  • Mock de servicios externos (Redis, correo, etc.) cuando sea necesario.
  • ruff check app para lint del backend.
  • npm run lint para lint del frontend.
  • Se ejecutan en CI/CD solo al pushear a main.