Si estás cansado de suites de pruebas frágiles que se rompen cada vez que refactorizas la UI, o de pruebas E2E inestables que pasan localmente pero fallan en CI, Claude Code Skills ofrece una mejor manera. Estos flujos de trabajo impulsados por IA no solo escriben pruebas, sino que las ejecutan, depuran fallos, actualizan selectores rotos y se adaptan continuamente a medida que tu aplicación evoluciona.
Probar aplicaciones web implica hacer malabarismos con pruebas unitarias, pruebas de integración, pruebas de componentes, flujos E2E y contratos de API. Claude Code Skills automatiza todo esto. Tú describes lo que hacen los usuarios, y Claude genera suites de pruebas completas, las ejecuta, corrige fallos e informa de los resultados. Sin scripts frágiles. Sin mantenimiento manual. Solo pruebas que funcionan.
Lo que hace que Claude Code Skills sea potente para las pruebas:
- Ejecución autónoma: Escribe, ejecuta, depura y corrige pruebas sin que tú tengas que volver a escribir comandos.
- Independiente del framework: Funciona perfectamente con Jest, Vitest, Playwright, Cypress, Puppeteer.
- Depuración inteligente: Analiza los fallos de las pruebas, sugiere las causas raíz y aplica correcciones.
- Consciente de la UI: Detecta cambios en el DOM, actualiza localizadores rotos, previene la fragilidad de los selectores.
- Full-Stack: Gestiona pruebas unitarias, mocks, flujos E2E y validación de API en una sola sesión.
Exploremos cómo aprovechar Claude Code Skills para realizar pruebas a escala.
Comprendiendo Claude Code Skills para Pruebas
¿Qué son las Habilidades de Pruebas?
Las Claude Code Skills son flujos de trabajo de IA personalizados y reutilizables que amplían las capacidades de prueba de Claude Code. Piensa en ellas como ejecutores de pruebas inteligentes que pueden:
- Ejecutar escenarios de prueba complejos de múltiples pasos de forma autónoma.
- Tomar decisiones conscientes del contexto sobre la lógica de reintentos y los tiempos de espera.
- Acceder a archivos, ejecutar comandos, analizar la salida de las pruebas y mucho más.
- Mantener el estado entre sesiones de prueba.
- Integrarse con tus frameworks de pruebas y herramientas de CI/CD existentes.

A diferencia de los scripts de prueba tradicionales que siguen una lógica rígida, las habilidades aprovechan el razonamiento de Claude para manejar casos extremos, sugerir mejoras y adaptarse a condiciones cambiantes.
Cómo Funcionan las Habilidades
Las habilidades operan a través de varios mecanismos clave:
1. Comandos Invocables por el Usuario
# Ejecuta una habilidad con un comando de barra
/run-unit-tests --coverage
/run-e2e-tests --env production
/fix-flaky-tests --retry 3
2. Herramientas Permitidas
Las habilidades especifican qué herramientas pueden usar:
Bash: Ejecutar comandos de prueba.Read,Write,Edit: Gestionar archivos de prueba.Glob,Grep: Buscar patrones de prueba.WebFetch: Recuperar datos de prueba.Task: Generar sub-agentes para escenarios de prueba complejos.
3. Ganchos de Ciclo de Vida
Las habilidades pueden activar acciones en puntos específicos:
SessionStart: Cuando la habilidad comienza.PreToolUse: Antes de ejecutar las pruebas.PostToolUse: Después de que las pruebas se completan.Stop: Cuando la habilidad termina.
4. Archivos de Planificación
Las habilidades mantienen el estado utilizando archivos markdown para seguir el progreso de las pruebas, los fallos y las mejoras.
Por Qué las Habilidades Sobresalen en las Pruebas Web
Los scripts de prueba tradicionales se rompen fácilmente cuando se enfrentan a condiciones inesperadas. Las habilidades aportan inteligencia a las pruebas:
- Comprensión contextual: Puede leer la salida de las pruebas, comprender los fallos y sugerir correcciones.
- Comportamiento adaptativo: Se ajusta a diferentes frameworks, navegadores y entornos.
- Auto-documentado: Las instrucciones en lenguaje natural hacen que los flujos de trabajo de prueba sean transparentes.
- Recuperación de errores: Puede diagnosticar la inestabilidad y proponer patrones resilientes.
- Mejora continua: Mejora la cobertura de las pruebas basándose en los patrones de implementación.
Capacidades Centrales de Pruebas
1. Generación Dinámica de Pruebas
Indicación: "Escribe pruebas E2E para un flujo de compra de usuario: añadir artículos, aplicar descuento, pagar, confirmar pedido."
Claude genera:
// Especificación completa de Playwright con aserciones realistas
// Configuración de pruebas cross-browser
// Captura de pantalla en caso de fallos
// Aserciones de rendimiento
No es un andamiaje de código listo para producción.
2. Ejecución e Iteración
# En la sesión de Claude Code
> Ejecutar las pruebas de compra y corregir cualquier fallo
# Claude hace:
npm test -- checkout.spec.js
# Las pruebas fallan en el paso de pago
# Claude analiza el fallo
# Actualiza los endpoints de mock
# Añade esperas explícitas
# Vuelve a ejecutar las pruebas
# Todo en verde ✓
3. Inteligencia del Framework
React + Jest? Claude genera pruebas de React Testing Library con fireEvent, waitFor y consultas de pantalla.
Vue + Vitest? Utiliza mount, ganchos de ciclo de vida y patrones específicos de Vue.
Playwright? Genera especificaciones cross-browser con selectores resilientes.
Claude se adapta a cualquier framework que utilice tu proyecto.
4. Resistencia de Selectores
Cuando refactorizas HTML, Claude sabe:
// ❌ Frágil
getByXPath("//button[2]/span[1]")
// ✓ Resiliente
getByRole('button', { name: /checkout/i })
getByTestId('checkout-button')
Sugiere y aplica patrones resilientes automáticamente.
5. Integración de Mocks y API
Claude combina a la perfección:
- Mocks de frontend (MSW) para pruebas unitarias/de integración aisladas.
- Pruebas de API (Apidog) para validación de contratos.
- Backends reales para pruebas E2E de staging.
Una sola indicación: "Prueba el flujo de inicio de sesión. Mockea la API de autenticación. Verifica que la respuesta coincida con el esquema OpenAPI."
Anatomía de una Habilidad de Prueba
Estructura de Directorios
Las habilidades de prueba residen en .claude/skills/ con esta disposición:
.claude/
├── skills/
│ ├── unit-tests/
│ │ ├── SKILL.md # Manifiesto de la habilidad
│ │ ├── planning.md # Seguimiento del progreso de la prueba
│ │ └── patterns/ # Patrones de prueba
│ ├── e2e-tests/
│ │ ├── SKILL.md
│ │ └── scenarios/ # Escenarios E2E
│ └── api-tests/
│ └── SKILL.md
└── skills.md # Índice de todas las habilidades
El Manifiesto SKILL.md
Cada habilidad comienza con un frontmatter YAML seguido de instrucciones en markdown:
---
name: e2e-testing
version: "1.0.0"
description: Pruebas E2E para aplicaciones web
user-invocable: true
allowed-tools:
- Bash
- Read
- Write
- Grep
- Glob
hooks:
SessionStart:
- matcher: command
command: "echo '[E2E Tests] Iniciando pruebas de automatización del navegador...'"
Stop:
- matcher: command
command: "echo '[E2E Tests] Suite de pruebas completa. Revisa los resultados anteriores.'"
---
# Habilidad de Pruebas E2E
Pruebas end-to-end completas para aplicaciones web usando Playwright.
## Uso
```bash
/e2e-tests # Ejecutar todas las pruebas E2E
/e2e-tests --headed # Ejecutar con navegador visible
/e2e-tests --project chrome # Ejecutar navegador específico
/e2e-tests --grep login # Ejecutar prueba específica
Lo que hace esta Habilidad
Ejecución de Pruebas
- Inicializar Playwright.
- Lanzar navegadores (Chrome, Firefox, Safari).
- Ejecutar especificaciones de prueba.
- Capturar capturas de pantalla en caso de fallo.
- Generar informes HTML.
Análisis de Fallos
- Analizar mensajes de error.
- Identificar problemas de selectores.
- Detectar problemas de tiempo de espera.
- Sugerir correcciones para pruebas inestables.
Generación de Informes
- Resumir los resultados de las pruebas.
- Enumerar los escenarios fallidos.
- Proporcionar pasos de remediación.
- Guardar en
test-reports/{timestamp}.md.
Instrucciones para Claude
Cuando se invoca:
- Comprueba si existen
playwright.config.jsy especificaciones de prueba. - Analiza los argumentos de la línea de comandos para filtros.
- Ejecuta Playwright con las opciones apropiadas.
- Monitoriza la ejecución de las pruebas en tiempo real.
- Analiza los fallos a medida que ocurren.
- Sugiere correcciones (por ejemplo, actualizar selectores, añadir esperas).
- Vuelve a ejecutar las pruebas fallidas con las correcciones.
- Genera un informe completo.
- Sale con un código de estado (0 = pasa, 1 = fallos).
---
## Construyendo Tu Primera Habilidad de Prueba
Construyamos una habilidad práctica: un ejecutor de pruebas E2E que maneje escenarios comunes de automatización del navegador.
### Paso 1: Crear el Directorio de la Habilidad
```bash
mkdir -p .claude/skills/e2e-testing
Paso 2: Escribir el Manifiesto de la Habilidad
Crea .claude/skills/e2e-testing/SKILL.md:
---
name: e2e-testing
version: "1.0.0"
description: Pruebas E2E de automatización del navegador
user-invocable: true
allowed-tools:
- Bash
- Read
- Write
- Grep
- Glob
hooks:
SessionStart:
- matcher: command
command: "echo '[E2E] Inicializando pruebas de Playwright...'"
Stop:
- matcher: command
command: "echo '[E2E] Ejecución de pruebas completa'"
---
# Habilidad de Pruebas E2E
Pruebas de automatización del navegador para aplicaciones web.
## Patrones de Prueba
Esta habilidad soporta estos patrones de prueba:
**Pruebas de Navegación**
* Cargar páginas y verificar redirecciones
* Comprobar títulos y URLs de páginas
* Validar rutas de navegación (breadcrumbs)
**Pruebas de Interacción con Formularios**
* Rellenar campos de entrada
* Enviar formularios
* Validar mensajes de error
* Comprobar la validación de campos
**Pruebas de Flujo de Usuario**
* Recorridos completos de usuario (inicio de sesión → panel de control → cierre de sesión)
* Flujos de trabajo de múltiples pasos
* Persistencia de estado
**Pruebas Cross-Browser**
* Chrome, Firefox, Safari
* Diseños responsivos
* Viewports móviles
## Reglas de Manejo de Errores
En caso de fallo de la prueba:
1. Comprobar si es un problema de selector → Actualizar selector
2. Comprobar si es un problema de temporización → Añadir espera explícita
3. Comprobar si es un problema de mock → Verificar manejadores de MSW
4. Comprobar si es un problema de entorno → Comprobar variables de entorno
5. Si no se resuelve → Registrar error detallado y detenerse
## Instrucciones
Cuando se invoca:
1. **Detectar configuración**
* Comprobar `playwright.config.js`
* Identificar la estructura del directorio de pruebas
* Analizar argumentos de línea de comandos
2. **Preparar entorno**
* Instalar binarios del navegador si es necesario
* Cargar variables de entorno
* Inicializar MSW si se usan mocks
3. **Ejecutar pruebas**
* Ejecutar el comando de prueba de Playwright
* Transmitir la salida al terminal
* Monitorizar los fallos en tiempo real
4. **Analizar fallos**
* Leer la salida de la prueba y los registros de errores
* Identificar el tipo de fallo (selector, tiempo de espera, aserción)
* Sugerir correcciones específicas
5. **Aplicar correcciones**
* Actualizar selectores rotos
* Añadir esperas implícitas donde sea necesario
* Modificar respuestas de mock
* Volver a ejecutar las pruebas fallidas
6. **Generar informe**
* Resumir el total de pruebas, pasadas, fallidas
* Listar todos los fallos con remediación
* Crear informe HTML
* Mostrar en terminal
7. **Salir con el estado apropiado**
* Salir con 0 si todas pasan
* Salir con 1 si alguna falla
Paso 3: Registrar la Habilidad
Añadir a .claude/skills.md:
# Habilidades de Prueba Disponibles
## Pruebas E2E
### /e2e-tests
Automatización de pruebas de navegador para aplicaciones web.
- **Versión**: 1.0.0
- **Uso**: `/e2e-tests [--headed] [--project navegador]`
- **Cuándo usar**: Antes de la implementación, después de cambios en la UI
- **Tiempo de ejecución**: 5-15 minutos dependiendo del número de pruebas
Paso 4: Probar la Habilidad
# En Claude Code
/e2e-tests --headed
Claude ejecutará ahora las pruebas E2E, gestionando los navegadores y analizando los fallos.
Patrones de Pruebas Avanzados
Patrón 1: Pruebas Multi-Framework
Claude Code adapta la generación de pruebas según tu framework:
## Detección Automática y Pruebas Específicas del Framework
Si `package.json` contiene:
- **React + Jest** → React Testing Library con `fireEvent`, `waitFor`, consultas de pantalla
- **Vue + Vitest** → Vue Test Utils con `mount`, ganchos de ciclo de vida, suscripciones a la store
- **Playwright** → E2E cross-browser con selectores resilientes
- **Cypress** → Automatización basada en comandos con API `cy.*`
Claude detecta automáticamente el framework y genera las pruebas apropiadas.
Ejemplo: Misma indicación, diferentes resultados:
# Indicación: "Probar el formulario de inicio de sesión"
# Salida de React:
# Usa: fireEvent.change(), screen.getByLabelText(), waitFor()
# Salida de Vue:
# Usa: mount(), wrapper.vm, store.commit()
# Salida de Playwright:
# Usa: page.getByLabel(), page.getByRole(), page.waitForURL()
Patrón 2: Lógica de Reintento Inteligente para Pruebas Inestables
Claude Code diagnostica y corrige inteligentemente las pruebas inestables:
## Manejo Inteligente de la Inestabilidad
Cuando una prueba falla intermitentemente:
1. **Analizar el fallo** → Leer registros de errores
2. **Diagnosticar la causa raíz**:
- Si es basado en selector → Actualizar a selector resiliente
- Si es basado en tiempo → Añadir espera explícita
- Si es basado en asincronía → Aumentar tiempo de espera
- Si es basado en mock → Verificar respuesta del mock
3. **Aplicar corrección** → Modificar el código de la prueba
4. **Volver a ejecutar** → Ejecutar la prueba 3 veces
5. **Verificar** → Confirmar que la corrección resuelve la inestabilidad
6. **Reportar** → Documentar el patrón para futuras referencias
Ejemplo de salida:
❌ Prueba fallida: "elemento no encontrado: #payment-button"
📊 Análisis: El selector es demasiado específico (el ID cambió en la refactorización)
🔧 Corrección: Cambiado de #payment-button → button[name="pay-now"]
✅ Re-ejecución: Pasó 3/3 veces
✓ Inestabilidad resuelta
Automatizando con CI/CD
Pipeline de Pruebas E2E
Configura pruebas E2E completas en GitHub Actions:
# .github/workflows/e2e-tests.yml
name: E2E Tests
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
schedule:
- cron: '0 2 * * *' # Pruebas nocturnas
jobs:
e2e:
name: Pruebas E2E - ${{ matrix.browser }}
runs-on: ubuntu-latest
strategy:
matrix:
browser: [chromium, firefox, webkit]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Instalar dependencias
run: npm ci
- name: Instalar navegadores de Playwright
run: npx playwright install --with-deps ${{ matrix.browser }}
- name: Construir aplicación
run: npm run build
- name: Ejecutar pruebas E2E
run: npx playwright test --project=${{ matrix.browser }}
- name: Subir informe de pruebas
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report-${{ matrix.browser }}
path: playwright-report/
retention-days: 30
- name: Publicar resultados de pruebas
if: always()
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: 'test-results/*.xml'
check_name: Pruebas E2E (${{ matrix.browser }})
Ganchos de Pruebas Pre-Commit
Evita que las pruebas rotas entren en tu repositorio:
# .husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
echo "Ejecutando pruebas unitarias pre-commit..."
npm test -- --bail --findRelatedTests
if [ $? -ne 0 ]; then
echo "❌ Pruebas fallidas. Commit bloqueado."
exit 1
fi
echo "✓ Todas las pruebas pasaron"
Validación Pre-Push
Valida antes de subir al remoto:
# .git/hooks/pre-push
#!/bin/bash
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$BRANCH" = "main" ]; then
echo "Ejecutando suite de pruebas completa antes de subir a main..."
npm test -- --coverage
npx playwright test
elif [ "$BRANCH" = "develop" ]; then
echo "Ejecutando pruebas E2E antes de subir a develop..."
npx playwright test
fi
if [ $? -ne 0 ]; then
echo "❌ Validación fallida. Push bloqueado."
exit 1
fi
echo "✓ Todas las validaciones pasaron"
Combinando con Apidog
💡 Consejo Profesional: Mientras Claude Code maneja las pruebas frontend, Apidog gestiona las pruebas de API. Juntos, aseguran una fiabilidad de extremo a extremo.

Indicación a Claude: "Antes de ejecutar las pruebas E2E, valida que todas las API pasen en Apidog. Si las pruebas de API fallan, omite las E2E e informa qué endpoints están rotos."
// e2e/pre-test-checks.js
import { execSync } from 'child_process';
async function runPreTestChecks() {
console.log('🔍 Validando APIs...');
try {
// Ejecutar primero las pruebas CLI de Apidog
execSync('apidog run --collection ./tests/api-collection.json --env ci', {
stdio: 'inherit'
});
console.log('✓ Pruebas de API pasaron - continuando con E2E');
} catch (error) {
console.error('✗ Pruebas de API fallaron - omitiendo E2E');
process.exit(1);
}
console.log('🎭 Ejecutando pruebas E2E...');
execSync('npx playwright test', { stdio: 'inherit' });
}
runPreTestChecks();
Esto crea un mecanismo de seguridad: si las API están rotas, las pruebas E2E se omiten automáticamente.
Mejores Prácticas y Resolución de Problemas
Resistencia de Selectores
Problema: Las pruebas pasan localmente, fallan en CI porque el DOM cambia ligeramente.
Solución: Usar selectores resilientes.
// ❌ Frágil
const button = page.locator('button:nth-child(3)');
// ✓ Resiliente
const button = page.getByRole('button', { name: /submit/i });
const button = page.getByTestId('submit-button');
Condiciones de Carrera Asincrónicas
Problema: La prueba hace clic en el botón pero la página aún no ha cargado.
Solución: Usar esperas explícitas.
// ❌ Inestable
await page.click('#submit');
await expect(page).toHaveURL(/dashboard/);
// ✓ Seguro
await page.click('#submit');
await page.waitForURL(/dashboard/);
Variables de Entorno
Problema: Las pruebas fallan porque las claves de API no están disponibles.
Solución: Usar .env.test.
// tests/setup.js
import dotenv from 'dotenv';
dotenv.config({ path: '.env.test' });
Conclusión
Claude Code Skills transforma las pruebas de una tarea pesada en un superpoder. Tú describes los recorridos de usuario, y Claude genera suites de pruebas completas, las ejecuta, depura fallos y corrige problemas de forma autónoma.
Combinado con Apidog para pruebas de API, logras una cobertura full-stack:
| Capa | Herramienta | Cobertura |
|---|---|---|
| Frontend | Claude Code | Interacciones de usuario, componentes, UI |
| APIs | Apidog | Validación de esquemas, contratos, respuestas |
| Integración | Ambas | Alineación Frontend-API, sincronización de mocks |
Empieza hoy mismo:
- Instala Claude Code:
npm install -g @anthropic-ai/claude-code - Navega a tu proyecto:
cd your-app - Lanza:
claude
4. Describe lo que quieres probar: "Crea pruebas E2E para el flujo de compra"
5. Observa cómo Claude genera, ejecuta e itera
La combinación de generación de pruebas impulsada por IA y depuración inteligente significa menos pruebas inestables, pipelines de CI más rápidos y más confianza en cada implementación. Deja de mantener scripts de prueba frágiles, deja que Claude Code Skills haga el trabajo pesado mientras tú te concentras en construir funcionalidades.
¿Listo para eliminar las pruebas inestables? Instala Claude Code y prueba Apidog gratis para pruebas de API. Codifica de forma más inteligente. Prueba más rápido. Implementa con confianza.
