# 🧪 Guía de Testing - CV MCP Tools
Esta guía detalla cómo ejecutar y mantener la batería de tests para el sistema MCP de reclutamiento.
## 📋 Descripción de Tests
### **Tests Core (8 herramientas)**
- ✅ `get_candidate_profile` - Información personal y contacto
- ✅ `get_work_experience` - Historial laboral
- ✅ `get_education_background` - Formación académica
- ✅ `get_certifications` - Certificaciones profesionales
- ✅ `get_technical_skills` - Skills técnicos categorizados
- ✅ `get_soft_skills` - Habilidades blandas y idiomas
- ✅ `get_languages_interests` - Idiomas e intereses
- ✅ `search_candidate_info` - Búsqueda por keywords
### **Tests Análisis Avanzado (4 herramientas)**
- 🔍 `evaluate_tech_stack` - Compatibilidad tecnológica
- 👥 `assess_leadership_experience` - Evaluación de liderazgo
- ⏱️ `calculate_experience_years` - Años de experiencia por tech
- 🎯 `match_job_requirements` - Match con requisitos de trabajo
### **Tests de Integración**
- 🎯 Escenarios reales de reclutamiento
- 💼 Evaluación para puestos específicos
- 📊 Análisis de compatibilidad completo
## 🚀 Comandos de Testing
### Ejecutar todos los tests
```bash
npm test
```
### Ejecutar solo tests MCP
```bash
npm run test:mcp
```
### Modo watch (auto-ejecución)
```bash
npm run test:watch
```
### Tests individuales
```bash
# Solo el archivo de tests MCP
node tests/mcp-tools.test.js
# Solo el test runner completo
node tests/run-tests.js
```
## 📁 Estructura de Archivos de Testing
```
tests/
├── mcp-tools.test.js # Tests principales de herramientas MCP
├── run-tests.js # Test runner con validaciones e integración
└── test-report.json # Reporte generado automáticamente
```
## 🔧 Validaciones Automáticas
Los tests incluyen las siguientes validaciones:
### **Validación de Archivos**
- ✅ Existencia de `src/candidate-data.json`
- ✅ Existencia de `src/index.ts`
- ✅ Estructura JSON válida
- ✅ Secciones requeridas en datos del candidato
### **Validación de Herramientas**
- ✅ Todas las herramientas responden correctamente
- ✅ Formato de respuesta JSON válido
- ✅ Datos requeridos presentes
- ✅ Manejo de casos edge
### **Validación de Análisis**
- ✅ Cálculos de compatibilidad correctos
- ✅ Identificación de experiencia de liderazgo
- ✅ Búsquedas por tecnología
- ✅ Scores y métricas válidas
## 📊 Interpretación de Resultados
### **Salida Exitosa**
```
🎉 ¡TODOS LOS TESTS PASARON!
✨ El sistema CV MCP está listo para producción
✅ Tests pasados: 15/15
📈 Porcentaje de éxito: 100.0%
```
### **Salida con Errores**
```
⚠️ 2 tests fallaron.
🔧 Revisa los errores anteriores para corregir los problemas.
❌ Tests pasados: 13/15
📈 Porcentaje de éxito: 86.7%
```
## 🎯 Escenarios de Testing
### **Escenario 1: Desarrollador Frontend React**
```javascript
{
jobTitle: 'React Frontend Developer',
requiredSkills: ['React', 'JavaScript', 'HTML', 'CSS'],
preferredSkills: ['TypeScript', 'Next.js', 'Tailwind CSS']
}
```
### **Escenario 2: Evaluación de Liderazgo**
```javascript
// Verifica experiencia como "Lead Frontend developer"
// Identifica skills de liderazgo en habilidades blandas
// Calcula duración de experiencia de liderazgo
```
### **Escenario 3: Tech Stack Startup**
```javascript
{
requiredTechnologies: ['React', 'Node.js', 'MongoDB', 'Docker', 'AWS']
}
```
## 🐛 Troubleshooting
### **Error: "Module not found"**
```bash
# Asegúrate de estar en el directorio raíz
cd /path/to/my-mcp-server
# Verifica que los archivos existan
ls tests/
ls src/candidate-data.json
```
### **Error: "JSON parse error"**
```bash
# Valida el JSON manualmente
node -e "console.log(JSON.parse(require('fs').readFileSync('src/candidate-data.json', 'utf8')))"
```
### **Tests fallan después de cambios**
1. Ejecuta `npm run format` y `npm run type-check`
2. Verifica que los cambios en `candidate-data.json` sean válidos
3. Revisa que las herramientas MCP mantengan la estructura de respuesta esperada
## 📈 Métricas de Testing
Los tests miden:
- **Funcionalidad**: Todas las herramientas responden correctamente
- **Estructura**: JSON válido y campos requeridos presentes
- **Lógica**: Cálculos y análisis correctos
- **Edge Cases**: Manejo de casos límite y errores
- **Integración**: Escenarios reales de uso
## 🔄 Flujo de CI/CD Recomendado
```bash
# 1. Validar código
npm run type-check
npm run lint:fix
npm run format
# 2. Ejecutar tests
npm test
# 3. Si tests pasan, proceder con deploy
npm run deploy
```
## 📋 Checklist Pre-Deploy
- [ ] ✅ Todos los tests pasan (`npm test`)
- [ ] 🔧 TypeScript sin errores (`npm run type-check`)
- [ ] 🎨 Código formateado (`npm run format`)
- [ ] 📊 Reporte de tests generado
- [ ] 🔍 Validación manual de escenarios críticos
---
💡 **Tip**: Ejecuta `npm test` antes de cada commit para mantener la calidad del código.