Testing
Tests del Backend
DashAI usa pytest para los tests del backend.
Ejecutar Todos los Tests
pytest -v
Ejecutar un Archivo de Test Específico
pytest tests/back/api/test_components_api.py -v
Ejecutar un Test por Nombre
pytest tests/back/api/test_components_api.py::test_name -v
Ejecutar con Cobertura
pytest --cov=DashAI --cov-report=html
Tests del Frontend
cd DashAI/front
yarn test
Estructura de Tests
tests/
├── back/
│ ├── api/ # Tests de endpoints de la API
│ ├── job/ # Tests de ejecución de jobs
│ ├── models/ # Tests de componentes de modelos
│ ├── converters/ # Tests de converters
│ ├── explorers/ # Tests de explorers
│ └── ...
└── docs/ # Tests del generador de documentación
CI
GitHub Actions ejecuta la suite completa de tests en cada PR y push sobre:
- Versiones de Python: 3.10, 3.11, 3.12, 3.13
- Sistemas operativos: Ubuntu, Windows, macOS
Verificaciones adicionales en CI:
- pre-commit: Linting con Ruff, formateo y otros hooks
- db-migrations: Verificaciones de upgrade/downgrade/reversibilidad con Alembic
- docs: Build de Docusaurus
Escribir Tests
Los tests del backend siguen las convenciones de pytest:
def test_create_dataset(client, tmp_path):
# Arrange
csv_file = tmp_path / "test.csv"
csv_file.write_text("a,b\n1,2\n3,4")
# Act
response = client.post("/api/v1/dataset/", files={"file": open(csv_file)})
# Assert
assert response.status_code == 201
assert response.json()["name"] == "test"
Se provee un fixture client que crea una aplicación FastAPI de prueba con una base de datos SQLite en memoria.