{"id":"f65f804a-6557-4476-8a91-2ed3228a3ed1","slug":"codeception-skill","kind":"skill","name":"codeception-skill","summary":"Generates Codeception tests in PHP covering acceptance, functional, and unit testing. BDD-style with Actor pattern. Use when user mentions \"Codeception\", \"$I->amOnPage\", \"$I->see\", \"Cest\". Triggers on","owner":"LambdaTest","repoUrl":"https://github.com/LambdaTest/agent-skills/tree/HEAD/codeception-skill","license":"MIT","licenseTier":"permissive","trust":"official","stars":376,"match":null,"fewStars":false,"format":"skill","createdAt":null,"addedAt":"2026-10-14T06:13:57.949Z","logoUrl":"https://avatars.githubusercontent.com/u/27130435?v=4","linkOnly":false,"collection":{"name":"agent-skills","repo":"lambdatest/agent-skills"},"skillPath":"codeception-skill","categories":["developer-tools"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-14T06:13:57.949Z","sample":false,"url":"https://conduits.dev/tools/codeception-skill","language":"Python","transports":[],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"> Generates Codeception tests in PHP covering acceptance, functional, and unit testing. BDD-style with Actor pattern. Use when user mentions \"Codeception\", \"$I->amOnPage\", \"$I->see\", \"Cest\". Triggers on: \"Codeception\", \"$I->amOnPage\", \"AcceptanceTester\", \"Codeception PHP\", \"Cest\".\n\n# Codeception Testing Skill\n\n## Core Patterns\n\n### Acceptance Test (Cest)\n\n```php\n<?php\n// tests/Acceptance/LoginCest.php\n\nclass LoginCest\n{\n    public function _before(AcceptanceTester $I)\n    {\n        $I->amOnPage('/login');\n    }\n\n    public function loginWithValidCredentials(AcceptanceTester $I)\n    {\n        $I->fillField('email', 'user@test.com');\n        $I->fillField('password', 'password123');\n        $I->click('Login');\n        $I->see('Dashboard');\n        $I->seeInCurrentUrl('/dashboard');\n        $I->seeElement('.welcome-message');\n    }\n\n    public function loginWithInvalidCredentials(AcceptanceTester $I)\n    {\n        $I->fillField('email', 'wrong@test.com');\n        $I->fillField('password', 'wrong');\n        $I->click('Login');\n        $I->see('Invalid credentials');\n        $I->seeInCurrentUrl('/login');\n    }\n}\n```\n\n### Actor Methods (AcceptanceTester $I)\n\n```php\n// Navigation\n$I->amOnPage('/path');\n$I->click('Button Text');\n$I->click('#id');\n$I->click(['xpath' => '//button']);\n\n// Forms\n$I->fillField('Name or Label', 'value');\n$I->selectOption('Select', 'Option');\n$I->checkOption('Checkbox');\n$I->uncheckOption('Checkbox');\n$I->attachFile('Upload', 'file.txt');\n$I->submitForm('#form', ['email' => 'test@x.com']);\n\n// Assertions\n$I->see('Text');\n$I->dontSee('Text');\n$I->seeElement('#id');\n$I->dontSeeElement('.error');\n$I->seeInField('email', 'expected@value.com');\n$I->seeInCurrentUrl('/dashboard');\n$I->seeInTitle('Page Title');\n$I->seeCheckboxIsChecked('#agree');\n$I->seeNumberOfElements('li', 5);\n\n// Grabbers\n$text = $I->grabTextFrom('.element');\n$attr = $I->grabAttributeFrom('#link', 'href');\n$value = $I->grabValueFrom('#input');\n```\n\n### Page Objects (Step Objects)\n\n```php\n<?php\n// tests/_support/Page/Login.php\nnamespace Page;\n\nclass Login\n{\n    public static $url = '/login';\n    public static $emailField = '#email';\n    public static $passwordField = '#password';\n    public static $loginButton = 'button[type=\"submit\"]';\n\n    protected $I;\n    public function __construct(\\AcceptanceTester $I) { $this->I = $I; }\n\n    public function login(string $email, string $password): void\n    {\n        $this->I->amOnPage(self::$url);\n        $this->I->fillField(self::$emailField, $email);\n        $this->I->fillField(self::$passwordField, $password);\n        $this->I->click(self::$loginButton);\n    }\n}\n```\n\n### Cloud (TestMu AI)\n\nFull setup: [reference/cloud-integration.md](reference/cloud-integration.md). Capabilities reference: [shared/testmu-cloud-reference.md](../shared/testmu-cloud-reference.md).\n\n### Cloud Config (acceptance.suite.yml)\n\n```yaml\nactor: AcceptanceTester\nmodules:\n  enabled:\n    - WebDriver:\n        url: 'http://localhost:3000'\n        host: 'hub.lambdatest.com'\n        port: 80\n        browser: chrome\n        capabilities:\n          'LT:Options':\n            user: '%LT_USERNAME%'\n            accessKey: '%LT_ACCESS_KEY%'\n            build: 'Codeception Build'\n            video: true\n```\n\n## Setup: `composer require --dev codeception/codeception codeception/module-webdriver`\n## Init: `php vendor/bin/codecept bootstrap`\n## Run: `php vendor/bin/codecept run acceptance`\n\n## Deep Patterns\n\nSee `reference/playbook.md` for production-grade patterns:\n\n| Section | What You Get |\n|---------|-------------|\n| §1 Project Setup | Installation, codeception.yml, suite configurations |\n| §2 Acceptance Tests | Cest pattern, @dataProvider, WebDriver interactions |\n| §3 API Tests | REST module, CRUD operations, @depends, HttpCode |\n| §4 Page Objects | Page class with static selectors, reusable methods |\n| §5 Database Testing | haveInDatabase, seeInDatabase, updateInDatabase |\n| §6 Custom Helpers | Custom module extending Codeception Module |\n| §7 CI/CD Integration | GitHub Actions with MySQL, Selenium, coverage |\n| §8 Debugging Table | 12 common problems with causes and fixes |\n| §9 Best Practices | 14-item Codeception testing checklist |"}