SpecFlow · Schema
SpecFlow Feature
Represents a Gherkin feature file containing related BDD scenarios
.NETBDDCucumberGherkinTesting
Properties
| Name | Type | Description |
|---|---|---|
| name | string | The feature name in natural language |
| description | string | Multi-line description of the feature providing business context |
| tags | array | Tags applied to all scenarios in this feature |
| background | object | Optional Background block with steps that run before each scenario |
| scenarios | array | List of scenarios defined in this feature |
| language | string | The language of the Gherkin keywords (ISO 639-1 code) |
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/api-evangelist/specflow/main/json-schema/specflow-feature-schema.json",
"title": "SpecFlow Feature",
"description": "Represents a Gherkin feature file containing related BDD scenarios",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The feature name in natural language"
},
"description": {
"type": "string",
"description": "Multi-line description of the feature providing business context"
},
"tags": {
"type": "array",
"items": {"type": "string"},
"description": "Tags applied to all scenarios in this feature"
},
"background": {
"type": "object",
"description": "Optional Background block with steps that run before each scenario",
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {"type": "string", "enum": ["Given", "When", "Then", "And", "But"]},
"text": {"type": "string"}
},
"required": ["keyword", "text"]
}
}
}
},
"scenarios": {
"type": "array",
"description": "List of scenarios defined in this feature",
"items": {
"$ref": "#/definitions/ScenarioRef"
}
},
"language": {
"type": "string",
"default": "en",
"description": "The language of the Gherkin keywords (ISO 639-1 code)"
}
},
"required": ["name", "scenarios"],
"definitions": {
"ScenarioRef": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["Scenario", "ScenarioOutline"],
"description": "Whether this is a regular scenario or a scenario outline with examples"
},
"title": {"type": "string"},
"tags": {"type": "array", "items": {"type": "string"}},
"steps": {"type": "array"},
"examples": {"type": "array"}
},
"required": ["type", "title", "steps"]
}
}
}