Behat BDD Skill
>
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
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 |
Security Status
Unvetted
Not yet security scanned
Related AI Tools
More Make Money tools you might like
Insert instructions below
FreeReplace with description of the skill and when Claude should use it.
Marketing Skills Division
Free"42 marketing agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw, and 6 more coding agents. 7 pods: content, SEO, CRO, channels, growth, intelligence, sales. Foundation context + orchestration router. 27 Python tools (stdli
Engineering Team Skills
Free"23 engineering agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw, and 6 more tools. Architecture, frontend, backend, QA, DevOps, security, AI/ML, data engineering, Playwright, Stripe, AWS, MS365. 30+ Python tools (stdlib-
Business & Growth Skills
Free"4 business growth agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw. Customer success (health scoring, churn), sales engineer (RFP), revenue operations (pipeline, GTM), contract & proposal writer. Python tools (stdlib-onl
C-Level Advisory Ecosystem
Free"10 C-level advisory agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw. CEO, CTO, COO, CPO, CMO, CFO, CRO, CISO, CHRO, Executive Mentor. Multi-role board meetings, strategy routing, structured recommendations. For founders
NotebookLM Automation
FreeComplete API for Google NotebookLM - full programmatic access including features not in the web UI. Create notebooks, add sources, generate all artifact types, download in multiple formats. Activates on explicit /notebooklm or intent like "create a p