App::RaCoCo - Raku Code Coverage tool.
All tests successful.
Files=16, Tests=114, 6 wallclock secs
> racoco --html --silent
> browsername .racoco/report.html
> racoco --exec='prove6 -Ilib' --fail-level=95 --silent
# exit code: 6
Library path ｢lib/.precomp｣ has ambiguous .precomp directory with more than one
CompUnit Repository. Please, make sure you have only the one directory in
the <library>/.precomp path or use --fix-compunit flag for the next RaCoCo launch
to erase .precomp directory automatically.
> racoco --fix-compunit
If you use zef, then
zef install App::RaCoCo, or
pakku add App::RaCoCo if you use Pakku.
App::RaCoCo provides the
racoco application, which can be used to run tests and calculate code coverage.
You may specify the following parameters:
--lib - path to directory with target source files (
'./lib' by default);
--raku-bin-dir - path to directory with raku and moar binaries (
$*EXECUTABLE.parent by default);
--exec - command, which need to be executed to run tests. For example, you may pass
'prove --exec raku' to the
exec parameter to say
prove to manage your tests, or use
--/exec parameter to not run tests and use coverage data from the previous run (
prove6 by default);
--fail-level - integer number - if coverage will be less than it then
racoco will exit with non-zero exitcode;
--silent - hide test result output;
--append - do not clean coverage data before this
racoco run and append its result to the previous one;
--html - produce simple html page to visualize results;
--color-blind - addition to
--html parameter - use more readable colors than green/red pare;
--fix-compunit - erase
<library>/.precomp directory before run tests. See details below.
- RaCoCo application works only with MoarVM backended Raku compiler;
- It is common practise to not include
use lib 'lib' line in test files. In such case we need to run tests with command like
prove6 -Ilib. As RaCoCo uses just
prove6 command by default, then we will need to run it like
racoco --exec='prove6 -Ilib';
<library>/.precomp directory has more than one directory with compiled sources, then RaCoCo cannot be sure which one need to be analysed. The situation arises, for example, after updating raku compiler. You need to clean
.precomp directory or delete only the old directories inside. Alternatively, you can run RaCoCo with
--fix-compunit flag ones to erase
.precomp directory automatically;
- Unfortunately, the current Rakudo implementation may produce a little different coverage log from run to run. Probably, it is because of some runtime optimisations.
Mikhail Khorkov email@example.com
Source can be located at: github. Comments and Pull Requests are welcome.
COPYRIGHT AND LICENSE
Copyright 2021 Mikhail Khorkov
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.