App::RaCoCo

Raku Code Coverage tool.

image https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/atroxaper/bbe5dc9c78db69d256b11c2ea562a42f/raw/racoco-ubuntu-coco.json not found

NAME

App::RaCoCo - Raku Code Coverage tool.

SYNOPSIS

> racoco
[...]
All tests successful.
Files=16, Tests=114,  6 wallclock secs
Result: PASS
Coverage: 89.2%

> racoco --html --silent
Visualisation: file://.racoco/report.html
Coverage: 89.2%
> browsername .racoco/report.html

> racoco --exec='prove6 -Ilib' --fail-level=95 --silent
Coverage: 89.2%
# exit code: 6

> racoco
[...]
===SORRY!===
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
[...]
Coverage: 89.2%

INSTALLATION

If you use zef, then zef install App::RaCoCo, or pakku add App::RaCoCo if you use Pakku.

DESCRIPTION

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.

COMMON DIFFICULT CASES

  • 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'.

  • If <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.

NOTE

RaCoCo application works only with MoarVM backended Raku compiler.

AUTHOR

Mikhail Khorkov [email protected]

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.

App::RaCoCo v1.4.3

Raku Code Coverage tool.

Authors

  • Mikhail Khorkov

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • App::Racoco::Cli
  • App::Racoco::Coverable::Coverable
  • App::Racoco::Coverable::CoverableIndex
  • App::Racoco::Coverable::CoverableLinesSupplier
  • App::Racoco::Coverable::CoverableOutliner
  • App::Racoco::CoverableLinesCollector
  • App::Racoco::CoveredLinesCollector
  • App::Racoco::ModuleNames
  • App::Racoco::Paths
  • App::Racoco::Precomp::PrecompHashcodeReader
  • App::Racoco::Precomp::PrecompLookup
  • App::Racoco::Precomp::PrecompSupplier
  • App::Racoco::Precomp::Precompiler
  • App::Racoco::ProjectName
  • App::Racoco::Report::Report
  • App::Racoco::Report::Reporter
  • App::Racoco::Report::ReporterBasic
  • App::Racoco::Report::ReporterHtml
  • App::Racoco::RunProc
  • App::Racoco::Sha
  • App::Racoco::X

Documentation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.