<< All versions
Setup:
Run:
Skill v1.0.1
currentAutomated scan100/100lambdatest/agent-skills/specflow-skill
1 files
──Details
PublishedAugust 9, 2026 at 09:10 PM
Content Hashsha256:134068b888d57e5d...
Git SHA0491a3a29aa1
Bump Typepatch
──Files
Files (1 file, 4.5 KB)
SKILL.md4.5 KBactive
SKILL.md · 183 lines · 4.5 KB
version: "1.0.1" name: specflow-skill description: > Generates SpecFlow BDD tests for C#/.NET with Gherkin feature files and step bindings. Use when user mentions "SpecFlow", "C# BDD", ".NET Gherkin", "[Binding]", "[Given]/[When]/[Then]". Triggers on: "SpecFlow", "C# BDD", ".NET BDD", "step bindings", "[Binding]". languages:
- C#
category: bdd-testing license: MIT metadata: author: TestMu AI version: "1.0"
SpecFlow BDD Skill
Core Patterns
Feature File (Features/Login.feature)
gherkin
Feature: User LoginScenario: Successful loginGiven I am on the login pageWhen I enter "user@test.com" as emailAnd I enter "password123" as passwordAnd I click the login buttonThen I should see the dashboardAnd the welcome message should contain "Welcome"Scenario: Invalid credentialsGiven I am on the login pageWhen I enter "wrong@test.com" as emailAnd I enter "wrong" as passwordAnd I click the login buttonThen I should see error "Invalid credentials"Scenario Outline: Login with various usersGiven I am on the login pageWhen I enter "<email>" as emailAnd I enter "<password>" as passwordAnd I click the login buttonThen I should see "<result>"Examples:| email | password | result || admin@test.com | admin123 | Dashboard || user@test.com | pass123 | Dashboard || bad@test.com | wrong | Error |
Step Bindings
csharp
using TechTalk.SpecFlow;using NUnit.Framework;[Binding]public class LoginSteps{private readonly ScenarioContext _context;private IWebDriver _driver;public LoginSteps(ScenarioContext context){_context = context;_driver = (IWebDriver)_context["driver"];}[Given(@"I am on the login page")]public void GivenIAmOnTheLoginPage(){_driver.Navigate().GoTo("http://localhost:3000/login");}[When(@"I enter ""(.*)"" as email")]public void WhenIEnterEmail(string email){_driver.FindElement(By.Id("email")).SendKeys(email);}[When(@"I enter ""(.*)"" as password")]public void WhenIEnterPassword(string password){_driver.FindElement(By.Id("password")).SendKeys(password);}[When(@"I click the login button")]public void WhenIClickLogin(){_driver.FindElement(By.CssSelector("button[type='submit']")).Click();}[Then(@"I should see the dashboard")]public void ThenIShouldSeeDashboard(){Assert.That(_driver.Url, Does.Contain("/dashboard"));}[Then(@"I should see error ""(.*)""")]public void ThenIShouldSeeError(string error){var element = _driver.FindElement(By.CssSelector(".error"));Assert.That(element.Text, Does.Contain(error));}}
Hooks
csharp
[Binding]public class Hooks{private readonly ScenarioContext _context;public Hooks(ScenarioContext context) { _context = context; }[BeforeScenario]public void BeforeScenario(){var driver = new ChromeDriver();_context["driver"] = driver;}[AfterScenario]public void AfterScenario(){((IWebDriver)_context["driver"]).Quit();}}
Dependency Injection (Context Injection)
csharp
// SpecFlow auto-injects ScenarioContext, FeatureContext, and custom POCOspublic class LoginSteps{private readonly LoginPage _loginPage;public LoginSteps(LoginPage loginPage) { _loginPage = loginPage; }}
Setup: dotnet add package SpecFlow.NUnit or SpecFlow.xUnit
Run: dotnet test
Cloud Execution on TestMu AI
Set environment variables: LT_USERNAME, LT_ACCESS_KEY
csharp
// Hooks.cs[BeforeScenario]public void Setup(){var ltOptions = new Dictionary<string, object>{{ "user", Environment.GetEnvironmentVariable("LT_USERNAME") },{ "accessKey", Environment.GetEnvironmentVariable("LT_ACCESS_KEY") },{ "build", "SpecFlow Build" },{ "name", ScenarioContext.Current.ScenarioInfo.Title },{ "platformName", "Windows 11" },{ "video", true },{ "console", true },};var options = new ChromeOptions();options.AddAdditionalOption("LT:Options", ltOptions);_driver = new RemoteWebDriver(new Uri("https://hub.lambdatest.com/wd/hub"), options);}
Report: SpecFlow+ LivingDoc extension for rich HTML reports
Deep Patterns
For advanced patterns, debugging guides, CI/CD integration, and best practices, see reference/playbook.md.