开发编程
#javascript
cucumber-skill
Generates Cucumber BDD tests with Gherkin feature files and step definitions in Java, JavaScript, or Ruby. Use when user mentions "Cucumber", "Gherkin", "Feature/Scenario", "Given/When/Then", "BDD". Triggers on: "Cucumber", "Gherkin", "BDD", "Feature file", "Given/When/Then", "step definitions".
DeepseekModel
官方收录技能
质量 优秀 · 78
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=lambdatest-agent-skills-cucumber-skill-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name cucumber-skill description Generates Cucumber BDD tests with Gherkin feature files and step definitions in Java, JavaScript, or Ruby. Use when user mentions "Cucumber", "Gherkin", "Feature/Scenario", "Given/When/Then", "BDD". Triggers on: "Cucumber", "Gherkin", "BDD", "Feature file", "Given/When/Then", "step definitions". languages ["Java","JavaScript","Ruby","TypeScript"] category bdd-testing license MIT metadata {"author":"TestMu AI","version":"1.0"} Cucumber BDD Skill Core Patterns Feature File (Gherkin) Feature: User Login As a registered user I want to log into the application So that I can access my dashboard Background: Given I am on the login page Scenario: Successful login When I enter "user@test.com" in the email field And I enter "password123" in the password field And I click the login button Then I should be redirected to the dashboard And I should see "Welcome" on the page Scenario: Invalid credentials When I enter "wrong@test.com" in the email field And I enter "wrongpass" in the password field And I click the login button Then I should see an error message "Invalid credentials" Scenario Outline: Login with various users When I enter "<email>" in the email field And I enter "<password>" in the password field And I click the login button Then I should see "<result>" Examples: | email | password | result | | admin@test.com | admin123 | Dashboard | | user@test.com | password | Dashboard | | bad@test.com | wrong | Error | Step Definitions — Java import io.cucumber.java.en.*; import static org.junit.jupiter.api.Assertions.*; public class LoginSteps { private LoginPage loginPage; private DashboardPage dashboardPage; @Given("I am on the login page") public void iAmOnTheLoginPage () { loginPage = new LoginPage (driver); loginPage.navigate(); } @When("I enter {string} in the email field") public void iEnterEmail (String email) { loginPage.enterEmail(email); } @When("I enter {string} in the password field") public void iEnterPassword (String password) { loginPage.enterPassword(password); } @When("I click the login button") public void iClickLogin () { dashboardPage = loginPage.clickLogin(); } @Then("I should be redirected to the dashboard") public void iShouldBeOnDashboard () { assertTrue(driver.getCurrentUrl().contains( "/dashboard" )); } @Then("I should see {string} on the page") public void iShouldSeeText (String text) { assertTrue(dashboardPage.getPageSource().contains(text)); } } Step Definitions — JavaScript const { Given , When , Then } = require ( '@cucumber/cucumber' ); const { expect } = require ( 'chai' ); Given ( 'I am on the login page' , async function ( ) { await this . page . goto ( '/login' ); }); When ( 'I enter {string} in the email field' , async function ( email ) { await this . page . fill ( '#email' , email); }); When ( 'I click the login button' , async function ( ) { await this . page . click ( 'button[type="submit"]' ); }); Then ( 'I should see {string} on the page' , async function ( text ) { const content = await this . page . textContent ( 'body' ); expect (content). to . include (text); }); Hooks import io.cucumber.java.*; public class Hooks { @Before public void setUp (Scenario scenario) { driver = new ChromeDriver (); } @After public void tearDown (Scenario scenario) { if (scenario.isFailed()) { byte [] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES); scenario.attach(screenshot, "image/png" , "failure-screenshot" ); } driver.quit(); } } Tags @smoke Feature: Login @critical @fast Scenario: Quick login ... @slow @regression Scenario: Full login flow ... # Run by tag mvn test -Dcucumber.filter.tags= "@smoke" mvn test -Dcucumber.filter.tags= "@smoke and not @slow" Anti-Patterns Bad Good Why UI details in Gherkin Business language Readability One step per line of code Meaningful business steps Abstraction No Background for shared steps Use Background DRY Imperative steps Declarative steps Maintainable Cloud Execution on TestMu AI Set environment variables: LT_USERNAME , LT_ACCESS_KEY Java: // CucumberHooks.java ChromeOptions browserOptions = new ChromeOptions (); HashMap<String, Object> ltOptions = new HashMap <>(); ltOptions.put( "user" , System.getenv( "LT_USERNAME" )); ltOptions.put( "accessKey" , System.getenv( "LT_ACCESS_KEY" )); ltOptions.put( "build" , "Cucumber Build" ); ltOptions.put( "name" , scenario.getName()); ltOptions.put( "platformName" , "Windows 11" ); ltOptions.put( "video" , true ); browserOptions.setCapability( "LT:Options" , ltOptions); driver = new RemoteWebDriver ( new URL ( "https://hub.lambdatest.com/wd/hub" ), browserOptions); JavaScript: const driver = new Builder () . usingServer ( `https:// ${process.env.LT_USERNAME} : ${process.env.LT_ACCESS_KEY} @hub.lambdatest.com/wd/hub` ) . withCapabilities ({ browserName : 'chrome' , 'LT:Options' : { user : process. env . LT_USERNAME , accessKey : process. env . LT_ACCESS_KEY , build : 'Cucumber Build' , platformName : 'Windows 11' , video : true }}). build (); Quick Reference Task Command Run all (Java) mvn test with cucumber-junit-platform-engine Run all (JS) npx cucumber-js Run tagged --tags "@smoke" Dry run --dry-run Generate snippets Run undefined steps Deep Patterns → reference/playbook.md § Section Lines 1 Project Setup & Configuration Maven, runner, rerun 2 Feature Writing Patterns Background, outlines, DataTable 3 Step Definitions Typed steps, DI injection 4 Dependency Injection & Shared State PicoContainer, ScenarioContext 5 Hooks (Lifecycle Management) Before/After ordering, screenshots 6 Custom Parameter Types Transformers, DocString 7 Parallel Execution Thread-safe, TestNG parallel 8 Reporting Allure, masterthought, JSON 9 CI/CD Integration GitHub Actions, tag matrix 10 Debugging Quick-Reference 10 common problems 11 Best Practices Checklist 13 items
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |