option

Générer des tests Playwright. À utiliser lorsque l'utilisateur dit « écrire des tests », « générer des tests », « ajouter des tests pour », « tester ce composant », « test e2e », « créer un test pour », « tester cette page » ou « tester cette fonctionnalité ».

...Développer tout
10
Heure mise à jour 25 août 2026

À propos de « generate »

Cette compétence, « generate », génère des tests Playwright de bout en bout prêts à être déployés à partir d’une user story, d’une URL, d’un chemin d’accès à un composant ou d’une description de fonctionnalité. Elle résout le problème lié à la rédaction manuelle de tests de navigateur fiables et conformes aux conventions : elle explore le projet existant pour identifier son répertoire de tests, son URL de base, ses fixtures et ses conventions relatives aux objets de page avant de générer quoi que ce soit, de sorte que le résultat s'adapte à la base de code cible plutôt qu'à un modèle générique.

Le workflow analyse ce qu’il faut tester, utilise un sous-agent « Explore » pour lire la configuration Playwright et les tests existants, sélectionne un modèle correspondant (authentification, CRUD, paiement, recherche, formulaires, tableau de bord, paramètres, onboarding, API, accessibilité) et l’adapte avec des sélecteurs et des données réels. Generate Les tests respectent des règles de qualité strictes : un ordre de priorité des localisateurs privilégiant getByRole, getByLabel et d’autres localisateurs sémantiques par rapport au CSS nu ; des assertions à réessai automatique axées sur le Web ; et une interdiction explicite des anti-modèles tels que waitForTimeout, les sélecteurs page.$ et l’utilisation inutile de page.evaluate. Il respecte les conventions du projet concernant TypeScript par rapport à JavaScript, les objets de page et les fixtures, et peut generate prendre en charge les objets de page, les fixtures et les fichiers de données de test lorsque cela est justifié. Enfin, il exécute les tests generate d à l’aide de la CLI Playwright et itère en cas d’échecs.

Il s’adresse aux développeurs web et aux ingénieurs QA qui utilisent Playwright et souhaitent une couverture e2e cohérente et facile à maintenir, generate d dans le style de leur propre projet. Parmi les cas d’utilisation, on peut citer le test des flux de connexion et de paiement, la validation des formulaires, les interfaces utilisateur de recherche et de filtrage, ainsi que le comportement des composants. La compétence est fournie avec un fichier SKILL.md et une bibliothèque patterns.md contenant des exemples concrets de tests pour l’authentification, les opérations CRUD et les flux de validation.

FAQ

Quelles entrées accepte-t-elle ?

Une user story, un chemin d’accès à un fichier de composant, une page ou une URL, ou encore un nom de fonctionnalité — par exemple « l’utilisateur peut se connecter avec son e-mail et son mot de passe » ou « src/components/UserProfile.tsx ».

Quel style de localisation et d’assertion impose-t-elle ?

Il privilégie les localisateurs sémantiques (getByRole, getByLabel, getByText, getByPlaceholder, getByTestId, dans cet ordre) et utilise toujours des assertions avec réessais automatiques « web-first » plutôt que l’extraction manuelle de texte.

Quels anti-modèles évite-t-il ?

Il n’utilise jamais page.waitForTimeout(), les sélecteurs page.$/page.$$, les sélecteurs CSS nus sauf en cas de nécessité absolue, ni page.evaluate() pour des tâches que les localisateurs peuvent effectuer.

Vérifie-t-il les tests qu’il écrit ?

Oui : il exécute le test d’generated avec la commande « npx playwright test --reporter=list », identifie toute erreur et corrige le test plutôt que l’application, en vous signalant les véritables problèmes de l’application.

S’adaptera-t-il aux conventions de mon projet ?

Il analyse le fichier playwright.config.ts et les tests existants pour s’adapter à l’utilisation de TypeScript ou de JavaScript, aux objets de page existants, aux fixtures personnalisées et aux répertoires de données de test.

Tous les fichiers

2 fichiers SKILL.md 4,4 Ko Viewpatterns.md 5,7 Ko View
Voir sur GitHub

Generate production-ready Playwright tests from a user story, URL, component name, or feature description.

Input

$ARGUMENTS contains what to test. Examples:

  • "user can log in with email and password"
  • "the checkout flow"
  • "src/components/UserProfile.tsx"
  • "the search page with filters"

Steps

1. Understand the Target

Parse $ARGUMENTS to determine:

  • User story: Extract the behavior to verify
  • Component path: Read the component source code
  • Page/URL: Identify the route and its elements
  • Feature name: Map to relevant app areas

2. Explore the Codebase

Use the Explore subagent to gather context:

  • Read playwright.config.ts for testDir, baseURL, projects
  • Check existing tests in testDir for patterns, fixtures, and conventions
  • If a component path is given, read the component to understand its props, states, and interactions
  • Check for existing page objects in pages/
  • Check for existing fixtures in fixtures/
  • Check for auth setup (auth.setup.ts or storageState config)

3. Select Templates

Check templates/ in this plugin for matching patterns:

If testing...Load template from
Login/auth flow../pw/templates/auth/login.md
CRUD operationstemplates/crud/
Checkout/paymenttemplates/checkout/
Search/filter UItemplates/search/
Form submissiontemplates/forms/
Dashboard/datatemplates/dashboard/
Settings pagetemplates/settings/
Onboarding flowtemplates/onboarding/
API endpointstemplates/api/
Accessibilitytemplates/accessibility/

Adapt the template to the specific app — replace {{placeholders}} with actual selectors, URLs, and data.

4. Generate the Test

Follow these rules:

Structure:

import { test, expect } from '@playwright/test';// Import custom fixtures if the project uses themtest.describe('Feature Name', () => {  // Group related behaviors  test('should <expected behavior>', async ({ page }) => {    // Arrange: navigate, set up state    // Act: perform user action    // Assert: verify outcome  });});

Locator priority (use the first that works):

  1. getByRole() — buttons, links, headings, form elements
  2. getByLabel() — form fields with labels
  3. getByText() — non-interactive text content
  4. getByPlaceholder() — inputs with placeholder text
  5. getByTestId() — when semantic options aren't available

Assertions — always web-first:

// GOOD — auto-retriesawait expect(page.getByRole('heading')).toBeVisible();await expect(page.getByRole('alert')).toHaveText('Success');// BAD — no retryconst text = await page.textContent('.msg');expect(text).toBe('Success');

Never use:

  • page.waitForTimeout()
  • page.$(selector) or page.$$(selector)
  • Bare CSS selectors unless absolutely necessary
  • page.evaluate() for things locators can do

Always include:

  • Descriptive test names that explain the behavior
  • Error/edge case tests alongside happy path
  • Proper await on every Playwright call
  • baseURL-relative navigation (page.goto('/') not page.goto('http://...'))

5. Match Project Conventions

  • If project uses TypeScript → generate .spec.ts
  • If project uses JavaScript → generate .spec.js with require() imports
  • If project has page objects → use them instead of inline locators
  • If project has custom fixtures → import and use them
  • If project has a test data directory → create test data files there

6. Generate Supporting Files (If Needed)

  • Page object: If the test touches 5+ unique locators on one page, create a page object
  • Fixture: If the test needs shared setup (auth, data), create or extend a fixture
  • Test data: If the test uses structured data, create a JSON file in test-data/

7. Verify

Run the generated test:

npx playwright test <generated-file> --reporter=list

If it fails:

  1. Read the error
  2. Fix the test (not the app)
  3. Run again
  4. If it's an app issue, report it to the user

Output

  • Generated test file(s) with path
  • Any supporting files created (page objects, fixtures, data)
  • Test run result
  • Coverage note: what behaviors are now tested

Tous les fichiers

2 fichiers
SKILL.md 4.4k
Voir

Installer generate

Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez le dépôt et copiez les fichiers de compétence dans votre projet.

git clone https://github.com/alirezarezvani/claude-skills/blob/main/engineering-team/playwright-pro/skills/generate/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Copier Copier
Configuration rapide: Copiez le dossier de la compétence dans .claude/skills/ ; Claude la détectera automatiquement et l'utilisera.

Compétences similaires

playwright-cli
Heure mise à jour 29 juin 2026
frontend-testing-best-practices
Heure mise à jour 7 juillet 2026
Playwright Browser Automation
Heure mise à jour 29 juin 2026
playwright-generate-test
Heure mise à jour 29 juin 2026
OR