Catégorie 04SKILLS
B

Behat

Tests BDD avec Behat et DrupalExtension — Gherkin, Mink, CI

Installation
Skill Claude — Globalmkdir -p ~/.claude/skills/behat
Composer (dev)composer require --dev behat/behat behat/mink-extension drupal/drupal-extension
Selenium pour tests JSdocker run -d -p 4444:4444 selenium/standalone-chrome
SKL
À propos

Skill Claude pour les tests comportementaux BDD avec Behat et l'extension Drupal. Couvre les scénarios Gherkin, la configuration Mink (Goutte/Selenium), les steps DrupalExtension prêts à l'emploi, les tags de suites (@smoke, @regression, @javascript), et l'intégration CI.

Commandes
CommandeDescription
vendor/bin/behat --suite=defaultLancer tous les tests BDD
vendor/bin/behat --tags=@smokeTests tagués @smoke uniquement
vendor/bin/behat --tags="~@javascript"Ignorer les tests nécessitant un navigateur
vendor/bin/behat --dry-runVérifier la syntaxe des steps sans exécuter
vendor/bin/behat --format=html --out=report.htmlGénérer un rapport HTML
vendor/bin/behat -dlLister tous les steps disponibles
Exemples
Scénario de connexion et création de contenuCODE
"Écris un scénario Behat complet pour :
1. Connexion en tant que rédacteur (rôle 'editor')
2. Navigation vers /node/add/article
3. Remplir les champs Titre, Corps, et sélectionner une catégorie
4. Sauvegarder et vérifier que le noeud est créé et publié
5. Vérifier que le titre apparaît dans la liste /articles
Utiliser les steps DrupalExtension, taguer @smoke"
Test de recherche avec SolrCODE
"Crée un Feature Behat pour tester la recherche :
1. Se rendre sur /search/node
2. Taper 'Drupal migration' dans le champ de recherche
3. Vérifier qu'au moins 1 résultat s'affiche avec .search-result
4. Cliquer sur le premier résultat
5. Vérifier que la page s'affiche correctement (H1 visible)
Tags : @smoke @search"
FeatureContext custom pour assertions métierCODE
"Crée un FeatureContext.php avec ces steps custom :
- '@Then le noeud :title doit être publié' : vérifie status=1 en DB
- '@Then la page :path doit répondre en moins de :ms millisecondes'
- '@Given je suis connecté comme :username avec mot de passe :password'
Utiliser RawDrupalContext, injecter le service entity_type.manager"