ASD

E2e Testing Patterns

Domina el testing end-to-end con Playwright y Cypress para construir suites fiables que detecten bugs y permitan despliegues rápidos.

Estrellas
38.8k

en todo el repo

Actividad
47

0–100, la ruta de este skill

Actualizado
hace 2 meses

último commit aquí

Commits
1

últimos 90 días

Contexto
1k tok

60 tok en reposo

Paquete
2 archivos

14 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill e2e-testing-patterns --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Aplica patrones de testing E2E con Playwright y Cypress para suites fiables y rápidas
  • Recomienda selectores estables (data-testid, roles) frente a selectores CSS frágiles
  • Ayuda a depurar tests inestables (flaky) usando esperas adecuadas y herramientas de trace
  • Aplica la pirámide de testing para decidir qué probar con E2E y qué no

Úsalo cuando

  • Implementando automatización de tests end-to-end
  • Depurando tests flaky o poco fiables
  • Probando flujos de usuario críticos como login o checkout
  • Estableciendo estándares de testing E2E o pipelines de CI/CD

No lo uses cuando

  • Para lógica a nivel de unidad (usar tests unitarios)
  • Para contratos de API (usar tests de integración)
  • Para casos extremos, porque son demasiado lentos con E2E

Qué lo activa

Di cualquiera de estas frases y el agente debería cargar este skill.

  • Ayúdame a escribir tests E2E con Playwright para el flujo de checkout
  • Mis tests de Cypress son flaky, ¿cómo los arreglo?
  • Necesito establecer estándares de testing E2E para mi equipo
  • Cómo depuro un test que falla intermitentemente en CI

SKILL.md

En inglés

E2E Testing Patterns

Build reliable, fast, and maintainable end-to-end test suites that provide confidence to ship code quickly and catch regressions before users do.

When to Use This Skill

  • Implementing end-to-end test automation
  • Debugging flaky or unreliable tests
  • Testing critical user workflows
  • Setting up CI/CD test pipelines
  • Testing across multiple browsers
  • Validating accessibility requirements
  • Testing responsive designs
  • Establishing E2E testing standards

Core Concepts

1. E2E Testing Fundamentals

What to Test with E2E:

  • Critical user journeys (login, checkout, signup)
  • Complex interactions (drag-and-drop, multi-step forms)
  • Cross-browser compatibility
  • Real API integration
  • Authentication flows

What NOT to Test with E2E:

  • Unit-level logic (use unit tests)
  • API contracts (use integration tests)
  • Edge cases (too slow)
  • Internal implementation details

2. Test Philosophy

The Testing Pyramid:

        /\
       /E2E\         ← Few, focused on critical paths
      /─────\
     /Integr\        ← More, test component interactions
    /────────\
   /Unit Tests\      ← Many, fast, isolated
  /────────────\

Best Practices:

  • Test user behavior, not implementation
  • Keep tests independent
  • Make tests deterministic
  • Optimize for speed
  • Use data-testid, not CSS selectors

Detailed patterns and worked examples

Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

Best Practices

  1. Use Data Attributes: data-testid or data-cy for stable selectors
  2. Avoid Brittle Selectors: Don't rely on CSS classes or DOM structure
  3. Test User Behavior: Click, type, see - not implementation details
  4. Keep Tests Independent: Each test should run in isolation
  5. Clean Up Test Data: Create and destroy test data in each test
  6. Use Page Objects: Encapsulate page logic
  7. Meaningful Assertions: Check actual user-visible behavior
  8. Optimize for Speed: Mock when possible, parallel execution
// ❌ Bad selectors
cy.get(".btn.btn-primary.submit-button").click();
cy.get("div > form > div:nth-child(2) > input").type("text");

// ✅ Good selectors
cy.getByRole("button", { name: "Submit" }).click();
cy.getByLabel("Email address").type("user@example.com");
cy.get('[data-testid="email-input"]').type("user@example.com");

Common Pitfalls

  • Flaky Tests: Use proper waits, not fixed timeouts
  • Slow Tests: Mock external APIs, use parallel execution
  • Over-Testing: Don't test every edge case with E2E
  • Coupled Tests: Tests should not depend on each other
  • Poor Selectors: Avoid CSS classes and nth-child
  • No Cleanup: Clean up test data after each test
  • Testing Implementation: Test user behavior, not internals

Debugging Failing Tests

// Playwright debugging
// 1. Run in headed mode
npx playwright test --headed

// 2. Run in debug mode
npx playwright test --debug

// 3. Use trace viewer
await page.screenshot({ path: 'screenshot.png' });
await page.video()?.saveAs('video.webm');

// 4. Add test.step for better reporting
test('checkout flow', async ({ page }) => {
    await test.step('Add item to cart', async () => {
        await page.goto('/products');
        await page.getByRole('button', { name: 'Add to Cart' }).click();
    });

    await test.step('Proceed to checkout', async () => {
        await page.goto('/cart');
        await page.getByRole('button', { name: 'Checkout' }).click();
    });
});

// 5. Inspect page state
await page.pause();  // Pauses execution, opens inspector

Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

Archivos

2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

Antes de instalar

Necesita en el PATH:npx

Detalles

Creador
wshobson
Categoría
Testing y QA
Licencia
MIT
Recursos incluidos
referencias
Repositorio
wshobson/agents
Código fuente
Ver SKILL.md

Etiquetas

Más de wshobson/agents

Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

Costo de contexto al activarse
344 tok
Tamaño del paquete
2 archivos
Última actualización
hace 26 días
documentos

Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

Costo de contexto al activarse
1.3k tok
Tamaño del paquete
10 archivos
Última actualización
el mes pasado
herramientas desarrollo

Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

Costo de contexto al activarse
489 tok
Tamaño del paquete
2 archivos
Última actualización
hace 26 días
documentos

Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

Costo de contexto al activarse
409 tok
Tamaño del paquete
2 archivos
Última actualización
hace 26 días
documentos

Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

Costo de contexto al activarse
689 tok
Tamaño del paquete
8 archivos
Última actualización
hace 26 días
documentos

Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

Costo de contexto al activarse
415 tok
Tamaño del paquete
2 archivos
Última actualización
hace 26 días
documentos

Skills relacionados

Testea contratos inteligentes de forma exhaustiva con Hardhat y Foundry: tests unitarios, de integración y forking de mainnet.

Costo de contexto al activarse
2k tok
Tamaño del paquete
2 archivos
Última actualización
hace 2 meses
testing qa

Realiza auditorías de accesibilidad WCAG 2.2 con pruebas automatizadas, verificación manual y guía de remediación. Útil para auditar sitios, corregir violaciones y aplicar patrones de diseño accesible.

Costo de contexto al activarse
628 tok
Tamaño del paquete
2 archivos
Última actualización
hace 2 meses
testing qa

Prueba workflows de Temporal con pytest, time-skipping y estrategias de mocking: testing unitario, de integración, de replay y configuración de desarrollo local.

Costo de contexto al activarse
1.2k tok
Tamaño del paquete
5 archivos
Última actualización
hace 3 meses
testing qa