Back to Marketplace

Run this helper free

Answer 3 questions. Get a result in 2 minutes. Preview free.

Start free →
FREE
Unvetted
Grow Business

Behat BDD Testing for PHP

Write readable tests that developers and stakeholders both understand

PHP developers struggle to write reliable browser-based tests that verify user workflows without maintaining brittle Selenium scripts.

Teams get automated BDD tests in Gherkin that clearly document expected behavior while validating real browser interactions through MinkContext.

  • Gherkin feature files for human-readable test scenarios
  • MinkContext integration for cross-browser web testing
  • behat.yml configuration for test environment setup
  • PHP FeatureContext with reusable step definitions

👁 2 views · 📦 0 installs

Install in one line

mfkvault install behat-skill

Requires the MFKVault CLI. Prefer MCP?

No reviews yet
🤖 Claude Code Cursor💻 Codex🦞 OpenClaw
FREE

Free to install — no account needed

Copy the command below and paste into your agent.

Instant access • No coding needed • No account needed

What you get in 5 minutes

  • Full skill code ready to install
  • Works with 4 AI agents
  • Lifetime updates included
SecureBe the first
Ready to run

Run this helper

Answer a few questions and let this helper do the work.

Advanced: use with your AI agent

Description

--- name: behat-skill description: > Generates Behat BDD tests for PHP with Gherkin feature files and MinkContext for browser testing. Use when user mentions "Behat", "PHP BDD", "Mink", "behat.yml". Triggers on: "Behat", "PHP BDD", "Mink", "behat.yml", "FeatureContext PHP". languages: - PHP category: bdd-testing license: MIT metadata: author: TestMu AI version: "1.0" --- # Behat BDD Skill ## Core Patterns ### Feature File (features/login.feature) ```gherkin Feature: User Login As a user I want to log in Scenario: Successful login Given I am on "/login" When I fill in "email" with "[email protected]" And I fill in "password" with "password123" And I press "Login" Then I should see "Dashboard" And I should be on "/dashboard" Scenario: Invalid credentials Given I am on "/login" When I fill in "email" with "[email protected]" And I fill in "password" with "wrong" And I press "Login" Then I should see "Invalid credentials" ``` ### Custom Context (features/bootstrap/LoginContext.php) ```php <?php use Behat\MinkExtension\Context\MinkContext; use Behat\Behat\Context\Context; class LoginContext extends MinkContext implements Context { /** * @When I login as :email with password :password */ public function iLoginAs(string $email, string $password): void { $this->visit('/login'); $this->fillField('email', $email); $this->fillField('password', $password); $this->pressButton('Login'); } /** * @Then I should see the dashboard */ public function iShouldSeeTheDashboard(): void { $this->assertSession()->addressEquals('/dashboard'); $this->assertSession()->pageTextContains('Welcome'); } /** * @Then the response time should be under :ms milliseconds */ public function responseUnder(int $ms): void { // Custom performance assertion } } ``` ### Built-in MinkContext Steps ```gherkin # Navigation Given I am on "/path" When I go to "/path" When I reload the page # Forms When I fill in "field" with "value" When I select "option" from "select" When I check "checkbox" When I uncheck "checkbox" When I press "button" When I attach the file "path" to "field" # Assertions Then I should see "text" Then I should not see "text" Then I should be on "/path" Then the response status code should be 200 Then the "field" field should contain "value" Then I should see an "css-selector" element Then print current URL ``` ### behat.yml ```yaml default: suites: default: contexts: - LoginContext - Behat\MinkExtension\Context\MinkContext extensions: Behat\MinkExtension: base_url: 'http://localhost:3000' sessions: default: selenium2: browser: chrome wd_host: 'http://localhost:4444/wd/hub' ``` ### Tags ```bash ./vendor/bin/behat --tags=@smoke ./vendor/bin/behat --tags="@smoke&&~@slow" ``` ## Setup: `composer require --dev behat/behat behat/mink-extension behat/mink-selenium2-driver` ## Init: `./vendor/bin/behat --init` ### Cloud Execution on TestMu AI Set environment variables: `LT_USERNAME`, `LT_ACCESS_KEY` ```yaml # behat.yml default: extensions: Behat\MinkExtension: base_url: 'https://your-app.com' selenium2: wd_host: 'https://hub.lambdatest.com/wd/hub' capabilities: browser: 'chrome' extra_capabilities: 'LT:Options': user: '%env(LT_USERNAME)%' accessKey: '%env(LT_ACCESS_KEY)%' build: 'Behat Build' name: 'Behat Test' platformName: 'Windows 11' video: true console: true network: true ``` ## Run: `./vendor/bin/behat` or `./vendor/bin/behat features/login.feature` ## Deep Patterns See `reference/playbook.md` for production-grade patterns: | Section | What You Get | |---------|-------------| | §1 Project Setup | behat.yml with suites, Mink extension, profiles, project structure | | §2 Feature Files | Gherkin with Scenario Outline, Background, TableNode data | | §3 Context Classes | Step definitions, dependency injection, API context, assertions | | §4 Hooks | BeforeSuite/Scenario/Step, screenshot on failure, transaction rollback | | §5 Page Objects | Page Object pattern with elements map, reusable components | | §6 LambdaTest Integration | Remote Selenium config, cloud browser profiles | | §7 Custom Formatters | HTML report formatter, result collection | | §8 CI/CD Integration | GitHub Actions with MySQL, Selenium, JUnit reports | | §9 Debugging Table | 12 common problems with causes and fixes | | §10 Best Practices | 14-item BDD testing checklist |

Preview in:

Security Status

Unvetted

Not yet security scanned

Time saved
How much time did this skill save you?

Related AI Tools

More Grow Business tools you might like

codex-collab

Free

Use when the user asks to invoke, delegate to, or collaborate with Codex on any task. Also use PROACTIVELY when an independent, non-Claude perspective from Codex would add value — second opinions on code, plans, architecture, or design decisions.

Rails Upgrade Analyzer

Free

Analyze Rails application upgrade path. Checks current version, finds latest release, fetches upgrade notes and diffs, then performs selective upgrade preserving local customizations.

Asta MCP — Academic Paper Search

Free

Domain expertise for Ai2 Asta MCP tools (Semantic Scholar corpus). Intent-to-tool routing, safe defaults, workflow patterns, and pitfall warnings for academic paper search, citation traversal, and author discovery.

Hand Drawn Diagrams

Free

Create hand-drawn Excalidraw diagrams, flows, explainers, wireframes, and page mockups. Default to monochrome sketch output; allow restrained color only for page mockups when the user explicitly wants webpage-like fidelity.

Move Code Quality Checker

Free

Analyzes Move language packages against the official Move Book Code Quality Checklist. Use this skill when reviewing Move code, checking Move 2024 Edition compliance, or analyzing Move packages for best practices. Activates automatically when working

Claude Memory Kit

Free

"Persistent memory system for Claude Code. Your agent remembers everything across sessions and projects. Two-layer architecture: hot cache (MEMORY.md) + knowledge wiki. Safety hooks prevent context loss. /close-day captures your day in one command. Z