A behavior-driven testing framework written in Raku.
Currently developed against Raku v6.d.
zef install BDD::BehaveIf no file is specified, Behave looks for a specs/ directory and runs every file in it whose name matches *spec.raku.
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.rakuOutput:
⮑ '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 581808742For local development of Behave itself:
raku -Ilib bin/behaveTo run the full test suite (both t/ and specs/):
raku test.rakuTo run just the t/ tests:
prove6 -Ilib tDocumentation: https://docs.behave.dev
See also the examples in specs/*.
Copyright (c) 2019-2026 Greg Donald
This software is licensed under the Artistic License 2.0.