# Context Attributes

A context object (`Context`) is handed to

> - step definitions (step implementations)

> - behave hooks (`before_all()`, `before_feature()`, …, `after_all()`)

## Behave Attributes

The https://pypi.python.org/pypi/behave runner assigns a number of attributes to the context object during a test run.

Attribute Name | Layer | Type | Description
--- | --- | --- | ---
config | test run | `Configuration` | Configuration that is used.
aborted | test run | bool | Set to true if test run is aborted by the user.
failed | test run | bool | Set to true if a step fails.
feature | feature | `Feature` | Current feature.
tags | feature, scenario | list<`Tag`> | Effective tags of current feature, scenario, scenario outline.
active_outline | scenario outline | `Row` | Current row in a scenario outline (in examples table).
scenario | scenario | `Scenario` | Current scenario.
log_capture | scenario | `LoggingCapture` | If logging capture is enabled.
stdout_capture | scenario | `StringIO` | If stdout capture is enabled.
stderr_capture | scenario | `StringIO` | If stderr capture is enabled.
table | step | `Table` | Contains step’s table, otherwise None.
text | step | String | Contains step’s multi-line text (unicode), otherwise None.

Note

Behave attributes in the context object should not be modified by a user. See `Context` class description for more details.

## User Attributes

A user can assign (or modify) own attributes to the context object. But these attributes will be removed again from the context object depending where these attributes are defined.

Kind | Assign Location | Lifecycle Layer (Scope)
--- | --- | ---
Hook | `before_all()` | test run
Hook | `after_all()` | test run
Hook | `before_tags()` | feature or scenario
Hook | `after_tags()` | feature or scenario
Hook | `before_feature()` | feature
Hook | `after_feature()` | feature
Hook | `before_scenario()` | scenario
Hook | `after_scenario()` | scenario
Hook | `before_step()` | scenario
Hook | `after_step()` | scenario
Step | Step definition | scenario