# Cucumber v1.1.0 - Table of Contents > Cucumber for Elixir: BDD testing framework with Gherkin syntax ## Pages - Guides - [Getting Started with Cucumber for Elixir](getting_started.md) - [Writing Feature Files](feature_files.md) - [Step Definitions](step_definitions.md) - [Hooks](hooks.md) - [Attachments](attachments.md) - [Error Handling and Debugging](error_handling.md) - [Best Practices for Cucumber Tests](best_practices.md) - [Cucumber Architecture](architecture.md) - [Compatibility boundaries](compatibility.md) ## Modules - [Cucumber](Cucumber.md): A behavior-driven development (BDD) testing framework for Elixir using Gherkin syntax. - [Cucumber.Attachment](Cucumber.Attachment.md): An attachment recorded during a cucumber run via `Cucumber.attach/4`, `Cucumber.log/2`, or `Cucumber.link/2`. - [Cucumber.Expression](Cucumber.Expression.md): Parser and matcher for Cucumber Expressions used in step definitions. - [Cucumber.Hooks](Cucumber.Hooks.md): Provides hooks for setup and teardown in Cucumber tests. - [Cucumber.Messages](Cucumber.Messages.md): Builders and NDJSON encoding for [Cucumber Messages](https://github.com/cucumber/messages), the protocol every Cucumber implementation emits so formatters, report services, and the Cucumber Compatibility Kit can consume runs uniformly. - [Cucumber.Messages.Emitter](Cucumber.Messages.Emitter.md): Drives Cucumber Messages emission through the `Cucumber.RunCoordinator` sink. - [Cucumber.ParameterTypes](Cucumber.ParameterTypes.md): Defines custom parameter types for use in cucumber expressions. - [Cucumber.RunCoordinator](Cucumber.RunCoordinator.md): Run-wide coordination process for cucumber test runs. - [Cucumber.StepDefinition](Cucumber.StepDefinition.md): Provides macros for defining cucumber step definitions. - [Cucumber.StepRegistry](Cucumber.StepRegistry.md): The complete set of step definitions and parameter types for a run, and the one place step text is matched against them. - [Cucumber.StepRegistry.Definition](Cucumber.StepRegistry.Definition.md): One step definition in a `Cucumber.StepRegistry`. - [Gherkin.Background](Gherkin.Background.md): Represents a Gherkin Background section. - [Gherkin.Examples](Gherkin.Examples.md): Represents an Examples block within a Scenario Outline. - [Gherkin.Feature](Gherkin.Feature.md): Represents a parsed Gherkin feature file (minimal subset). - [Gherkin.Markdown](Gherkin.Markdown.md): Parser for Markdown feature files — "Markdown with Gherkin" (MDG). - [Gherkin.NimbleParser](Gherkin.NimbleParser.md): NimbleParsec-based Gherkin parser. - [Gherkin.Parser](Gherkin.Parser.md): Gherkin parser using NimbleParsec. - [Gherkin.Pickle](Gherkin.Pickle.md): A pickle: one concrete, runnable scenario compiled from a feature's AST. - [Gherkin.PickleStep](Gherkin.PickleStep.md): One step of a `Gherkin.Pickle`. - [Gherkin.Pickles](Gherkin.Pickles.md): Compiles a parsed `Gherkin.Feature` into its Cucumber Messages `gherkinDocument` node and the list of `Gherkin.Pickle`s to execute. - [Gherkin.Pickles.Compilation](Gherkin.Pickles.Compilation.md): Result of `Gherkin.Pickles.compile/2`. - [Gherkin.Rule](Gherkin.Rule.md): Represents a Gherkin Rule section. - [Gherkin.Scenario](Gherkin.Scenario.md): Represents a Gherkin Scenario section. - [Gherkin.ScenarioOutline](Gherkin.ScenarioOutline.md): Represents a Gherkin Scenario Outline section. - [Gherkin.Step](Gherkin.Step.md): Represents a Gherkin step (Given/When/Then/And/But/*). - Exceptions - [Cucumber.AmbiguousStepError](Cucumber.AmbiguousStepError.md): Exception raised when a step's text matches more than one step definition. - [Cucumber.BeforeAllError](Cucumber.BeforeAllError.md): Raised in every scenario when the run's `before_all` hooks failed. - [Cucumber.PendingStepError](Cucumber.PendingStepError.md): Exception raised when a step (or before hook) signals it is not yet implemented by returning `:pending` or `{:pending, message}`. - [Cucumber.StepError](Cucumber.StepError.md): Exception raised when a step in a Cucumber scenario fails. - [Cucumber.UndefinedParameterTypeError](Cucumber.UndefinedParameterTypeError.md): Raised when a step pattern references a parameter type that is neither a built-in nor a registered custom type (see `Cucumber.ParameterTypes`). - [Gherkin.ParseError](Gherkin.ParseError.md): Exception raised when parsing a Gherkin file fails. ## Mix Tasks - [mix cucumber.install](Mix.Tasks.Cucumber.Install.md): Installs Cucumber into your Elixir project.