code_coverage 1.0.0-SNAPSHOT.2 copy "code_coverage: ^1.0.0-SNAPSHOT.2" to clipboard
code_coverage: ^1.0.0-SNAPSHOT.2 copied to clipboard

outdated

A CLI tool and package useful for reporting code coverage of a given dart package

Code Coverage #

A command-line application and package for Code Coverage Reporting of a Dart application.

CLI #

Usage #

After installation, you can simply run code_coverage on the base directory of your package.

The output will be something like this:

Running package tests...
┌────────────────────┬────────────┬───────────────────┐
│ File               │ Coverage % │ Uncovered Lines   │
├────────────────────┼────────────┼───────────────────┤
│ All covered files  │      45.83 │                   │
│ src/utils.dart     │      52.38 │ 38-42, 44, 48-51  │
│ src/constants.dart │       0.00 │ 3-5               │
└────────────────────┴────────────┴───────────────────┘
18.18% (2/11) of all files were covered

As you can see, the CLI will run your package tests and output a table showing which files and how much of them were reached.

Options

Even though the base command you do for some people, there are some options to provide flexibility for the user, they are:

  • --showOutput, -o: This option will show the dart test output, so the total output will be something like this:
Running package tests...
00:00 +0: test\utils_test.dart: should concatenate small group of lines as a range
00:00 +1: test\utils_test.dart: should concatenate medium group of lines as a range
00:00 +2: test\utils_test.dart: should concatenate two lines as separate
00:00 +3: test\utils_test.dart: should concatenate lines as range and separate
00:00 +4: test\utils_test.dart: should concatenate lines with a range followed by another range
00:00 +5: test\utils_test.dart: should concatenate lines as two ranges and two separate
00:03 +6: All tests passed!
┌────────────────────┬────────────┬───────────────────┐
│ File               │ Coverage % │ Uncovered Lines   │
├────────────────────┼────────────┼───────────────────┤
│ All covered files  │      45.83 │                   │
│ src/utils.dart     │      52.38 │ 38-42, 44, 48-51  │
│ src/constants.dart │       0.00 │ 3-5               │
└────────────────────┴────────────┴───────────────────┘
18.18% (2/11) of all files were covered
  • --packageDir, -d: With this option you can specify the directory of the package that will be tested.

Package #

You can also use code_coverage as a package, so you can create your custom code coverage reports and applications!
Here are the classes that you are likely to use:

  • HitmapReader: Using the methods fromDirectory, fromFile and fromString, you can create a Hitmap object containing the files and lines reached in your tests. This class is used with dart test coverage to read and parse the coverage output;
  • CoverageReportFactory: Using the method create with a hitmap, base directory of a package and the package name, you can create a CoverageReport. The package directory is needed so the report will contain the uncovered files (dart test coverage output does not contain these), and the package name is used to filter the coverage output (it contains all the files covered, including internals);
  • CoverageReport: This class contains the covered files reports, names of uncovered files, and also some useful methods for coverage reporting;
  • FileCoverageReport: This class contains the covered file name, the lines covered and how many times they were reached, and also some useful methods for coverage reporting.

If you want to build your own coverage reporting tool, take a look at the CodeCoverageExtractor class, it is the main class that runs the tests and extracts the coverage reports.

6
likes
0
points
120
downloads

Publisher

verified publishergustavohill.dev

Weekly Downloads

A CLI tool and package useful for reporting code coverage of a given dart package

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

ansicolor, args, coverage, path, yaml

More

Packages that depend on code_coverage