Nowadays many Raku modules authors ship cli tools as a part of their Raku modules distributions.
RakuDist provides a dead easy way to test those scripts. The benefit, it takes a minimal coding and
fully integrated into RakuDist service.
Cli application example
Say, we have a script.raku shipped as a part of a Raku module. $ cat bin/script.raku
if @*ARGS[0] -eq "--version" {
say "app version: 0.1.0"
} elsif @*ARGS[0] -eq "--help" {
help();
} else {
my @params = @*ARGS;
# do some stuff
}
To test a script installation one needs to create a .tomty/
sub directory in a module root directory and place some test scenarios. Scenarios should written on Tomty – a simple Raku framework for black box testing:
$ mkdir .tomty
$ nano .tomty/00-script-version.pl6
task-run ".tomty/tasks/app-version/";
$ mkdir -p .tomty/tasks/app-version/
$ nano .tomty/tasks/app-version/task.bash
script.raku --version
00-script-version scenario runs the script with some parameters ( help info ) and verifies successful status code.
To verify script STDOUT, create a check file with some Raku regular expressions:$ nano .tomty/tasks/app-version/task.check
regexp: "app version:" \s+ \d+ '.' \d+ '.' \d+
You can add more scenarios, they all will be executed in a row:
.tomty/01-script-help.pl6
.tomty/02-script-run-with-some-params.pl6
Ship it and test it!
Now just add .tomty
to add your CPAN module distribution and the tests will be automatically run by RakuDist!
—
That is it, stay tuned!
Leave a Reply