combine_coverage 1.0.2 copy "combine_coverage: ^1.0.2" to clipboard
combine_coverage: ^1.0.2 copied to clipboard

Utility for combining lcov files in a Dart or Flutter monorepo

In monorepos with multiple Dart and Flutter packages, this CLI tool will combine all lcov.info files into a single lcov.info file that will display correctly using tools like genhtml, Coveralls and others.

A CLI tool for combining Dart & Flutter code coverage reports in a monorepo.

Usage: combine_coverage [arguments]

Global options:
-h, --help                     Print this usage information
-p, --repo-path (mandatory)    The path to the root of your monorepo
-o, --output-directory         The path where you want to output the combined coverage file. Defaults to <repo-path>/coverage

Example #

Note: We recommend melos to manage the execution of these steps in large monorepos.

If we have multiple Dart and Flutter packages in a monorepo and want to generate a single, shared lcov.info file to represent all coverage, we can follow these steps:

1. Run unit tests with the --coverage flag #

In each Flutter package, run:

flutter test --coverage

In each Dart package, run:

dart test --coverage=./coverage

2. Convert test coverage output for Dart packages to lcov format #

By default, Dart outputs json coverage reports, but we can use the coverage package to format the Dart test coverage output in lcov format. In each Dart package run...

dart pub global run coverage:format_coverage --in="./coverage/test" --out="./coverage/lcov.info" --lcov --report-on="./lib"

3. Combine the coverage reports #

Now that we have an lcov file in each package in our monorepo, we just need to run combine_coverage. If you have added dart scripts to your PATH use the following:

combine_coverage --repo-path="<path-to-your-monorepo>"

Otherwise, you can use the following:

dart pub global run combine_coverage --repo-path="<path-to-your-monorepo>"

In the monorepo's root there will now be a file at coverage/lcov.info that combines the coverage output for all packages with corrected file paths. This file can be passed to any visualization tool to make a full and accurate coverage report.

If you'd like to specify a directory to place the combined lcov file, use the --output-directory flag.

1
likes
160
pub points
43%
popularity

Publisher

verified publisherverasana.com

Utility for combining lcov files in a Dart or Flutter monorepo

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

args, file, glob, path

More

Packages that depend on combine_coverage