Releases: gdonald/BDD-Behave
Releases · gdonald/BDD-Behave
v0.9.1
Added
- Bareword slang for
let, so blocks can reference fixtures asownerin
addition to:owner raiseandthrowaliases for theraise-errorexception matcher--versionflag on thebehaveCLI
Removed
- Per-example memory profiling.
Fixed
- Parallel worker distribution and a
requirefailure under--parallel - Line number rendering in spec failure output
v0.9.0
v0.9.0 — 2026-05-25
Spec-tree runner with hooks, mocks, custom matchers, and parallel execution.
Added
- Documentation
- mkdocs site under
docs-src/, published to thegh-pagesbranch at https://docs.behave.dev - Spec-driven doc extraction
- mkdocs site under
- Core DSL
describe/it/specifywith arbitrary nesting on a spec treebefore/after/aroundhooks, including metadata-keyed and inherited variantslet/let!(eager) /subject/is-expectedone-liner syntax- Shared contexts and shared examples
- Tags, focus, and skip
- Example filtering by name or metadata
- Pending examples, dry-run, and example listing
- Run by file, directory, line number, or a single block
- Expectations
- Custom and composable matcher DSL
- Matchers for equality, comparison,
be-between/be-within, boolean, nil, type checking,respond-to,have-attributes,include,all, sequence,match, string content,change/change-by/change-from-to, junctions, exceptions (raise-errorwith attribute matching), promises, supplies/channels, andeventuallyfor async aggregate_failuresblock plus auto-aggregation
- Mocks
- Doubles, method stubbing, spies with call verification, and partial mocking
- Runner & CLI
- Parallel execution with queue distribution, a discovery subprocess, per-shard retry on worker crash, and aggregated memory / profile / benchmark output
--fail-fast,--watch,--progress-total, retry, seed control, and bisect for flaky specs- Code coverage metrics, compatible with
--parallel
- Formatters
- Progress (default), TAP, JUnit, JSON, JsonEvents, HTML, Tree, and Documentation
- Diagnostics
- Junction-aware, shape-detecting diffs
- Timing profiling, memory profiling, and benchmarking with baselines
- Time mocking
- Configuration
- File-based configuration with CLI precedence
Changed
- Migrated files from Perl 6 file extensions to Raku throughout
- Reworked expectations to accept actual values
- Replaced the grammar-driven core with an in-memory spec tree (
Suite→ExampleGroup→Example/Hook) walked by the runner - Regrouped
lib/,t/, andspecs/by feature area (core/,expectations/,parallel/, etc.) - Default formatter is now Progress