Skills Plugins MCP Prompt Model 博客 我的中心
开发编程 #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 / 自定义框架)
同一份技能可按不同平台格式导出。
.skill 标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用 下载
.skillpro 增强格式,额外含脚本 / 工具 / 依赖 / 钩子占位 下载
.json 纯 JSON 导出,只含 system_prompt 与模型参数 下载
Coze 带 frontmatter 的 Markdown,Coze 平台导入用 下载
Dify Dify DSL,创建应用后直接导入 下载

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。