Cucumber · Schema

CucumberMessage

Subset schema for Cucumber Messages, the standard interchange format emitted by Cucumber implementations and consumed by formatters and reporters. See https://github.com/cucumber/messages for the canonical schema.

AutomationBDDBehavior Driven DevelopmentGherkinOpen SourceQuality AssuranceTest FrameworkTesting

Properties

Name Type Description
meta object
source object
gherkinDocument object
pickle object
testRunStarted object
testRunFinished object
testCaseStarted object
testCaseFinished object
testStepStarted object
testStepFinished object
attachment object
View JSON Schema on GitHub

JSON Schema

cucumber-message-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/cucumber/refs/heads/main/json-schema/cucumber-message-schema.json",
  "title": "CucumberMessage",
  "description": "Subset schema for Cucumber Messages, the standard interchange format emitted by Cucumber implementations and consumed by formatters and reporters. See https://github.com/cucumber/messages for the canonical schema.",
  "type": "object",
  "oneOf": [
    {"required": ["meta"]},
    {"required": ["source"]},
    {"required": ["gherkinDocument"]},
    {"required": ["pickle"]},
    {"required": ["testCaseStarted"]},
    {"required": ["testCaseFinished"]},
    {"required": ["testStepStarted"]},
    {"required": ["testStepFinished"]},
    {"required": ["testRunStarted"]},
    {"required": ["testRunFinished"]},
    {"required": ["attachment"]}
  ],
  "properties": {
    "meta": {
      "type": "object",
      "properties": {
        "protocolVersion": {"type": "string"},
        "implementation": {"type": "object", "properties": {"name": {"type": "string"}, "version": {"type": "string"}}},
        "runtime": {"type": "object", "properties": {"name": {"type": "string"}, "version": {"type": "string"}}}
      }
    },
    "source": {
      "type": "object",
      "required": ["uri", "data", "mediaType"],
      "properties": {
        "uri": {"type": "string"},
        "data": {"type": "string"},
        "mediaType": {"type": "string"}
      }
    },
    "gherkinDocument": {
      "type": "object",
      "properties": {
        "uri": {"type": "string"},
        "feature": {"$ref": "#/$defs/Feature"},
        "comments": {"type": "array", "items": {"type": "object"}}
      }
    },
    "pickle": {
      "type": "object",
      "properties": {
        "id": {"type": "string"},
        "uri": {"type": "string"},
        "name": {"type": "string"},
        "language": {"type": "string"},
        "tags": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string"}}}},
        "steps": {"type": "array", "items": {"type": "object"}}
      }
    },
    "testRunStarted": {"type": "object", "properties": {"timestamp": {"$ref": "#/$defs/Timestamp"}}},
    "testRunFinished": {
      "type": "object",
      "properties": {
        "success": {"type": "boolean"},
        "timestamp": {"$ref": "#/$defs/Timestamp"},
        "message": {"type": "string"}
      }
    },
    "testCaseStarted": {"type": "object"},
    "testCaseFinished": {"type": "object"},
    "testStepStarted": {"type": "object"},
    "testStepFinished": {
      "type": "object",
      "properties": {
        "testStepResult": {
          "type": "object",
          "properties": {
            "status": {"type": "string", "enum": ["UNKNOWN", "PASSED", "SKIPPED", "PENDING", "UNDEFINED", "AMBIGUOUS", "FAILED"]},
            "duration": {"type": "object"},
            "message": {"type": "string"}
          }
        }
      }
    },
    "attachment": {
      "type": "object",
      "properties": {
        "body": {"type": "string"},
        "contentEncoding": {"type": "string", "enum": ["IDENTITY", "BASE64"]},
        "mediaType": {"type": "string"},
        "fileName": {"type": "string"}
      }
    }
  },
  "$defs": {
    "Timestamp": {
      "type": "object",
      "properties": {
        "seconds": {"type": "integer"},
        "nanos": {"type": "integer"}
      }
    },
    "Feature": {
      "type": "object",
      "properties": {
        "name": {"type": "string"},
        "description": {"type": "string"},
        "language": {"type": "string"},
        "keyword": {"type": "string"},
        "tags": {"type": "array", "items": {"type": "object"}},
        "children": {"type": "array", "items": {"type": "object"}}
      }
    }
  }
}