Rand Stats

BDD::Behave

zef:gdonald

Behave

A behavior-driven testing framework written in Raku.

Currently developed against Raku v6.d.

Install using zef

zef install BDD::Behave

Running Behave

If no file is specified, Behave looks for a specs/ directory and runs every file in it whose name matches *spec.raku.

An example

specs/answer-spec.raku

use BDD::Behave;

describe 'this spec', {
  let(:answer, { 42 });

  it 'passes', {
    expect(:answer).to.be(42);
  }
}

describe 'this final spec', {
  let(:answer, { 42 });

  it 'fails at line 15', {
    expect(:answer).to.be(41);
  }
}

You can run the spec like this:

behave --format=tree specs/answer-spec.raku

Output:

⮑ 'this spec'
  ⮑ 'passes'
    ⮑ SUCCESS
⮑ 'this final spec'
  ⮑ 'fails at line 15'
    ⮑ FAILURE

Failures:

  [ ✗ ] /path/to/project/specs/answer-spec.raku:15
      this final spec fails at line 15
      Expected: 42
      to be: 41

2 examples, 1 failed, 1 passed
Randomized with seed 581808742

Local Behave development

For local development of Behave itself:

raku -Ilib bin/behave

Tests

To run the full test suite (both t/ and specs/):

raku test.raku

To run just the t/ tests:

prove6 -Ilib t

Status

CI

Documentation

Documentation: https://docs.behave.dev

See also the examples in specs/*.

Website

https://behave.dev

License

Copyright (c) 2019-2026 Greg Donald

This software is licensed under the Artistic License 2.0.

GitHub