CoverageCommand class

Command to generate comprehensive test coverage reports for Flutter projects.

This command extends the basic test functionality by running tests with coverage analysis, processing LCOV files to remove ignored paths, and generating HTML coverage reports for easy visualization.

Purpose:

  • Execute comprehensive test coverage analysis across all project modules
  • Generate clean coverage reports by excluding ignored files
  • Produce HTML visualization of coverage data
  • Support selective coverage analysis by app, feature, or page

Coverage Process:

  1. Execute tests with coverage enabled across all modules
  2. Merge LCOV files from all modules into a unified report
  3. Remove ignored files/patterns as configured in morpheme.yaml
  4. Generate HTML coverage report for visualization

Configuration (morpheme.yaml):

coverage:
  output_html_dir: "coverage/html"
  remove:
    - "**/generated/**"
    - "**/mock/**"
    - "**/*.g.dart"
    - "**/*.freezed.dart"

Usage Examples:

# Generate coverage for entire project
morpheme coverage

# Coverage for specific feature
morpheme coverage --feature authentication

# Coverage with custom reporter
morpheme coverage --reporter json --file-reporter json:coverage/report.json

Requirements:

  • lcov tool must be installed for processing coverage files
  • genhtml tool must be installed for generating HTML reports
  • Valid coverage configuration in morpheme.yaml

Parameters:

  • --apps (-a): Target specific app for coverage analysis
  • --feature (-f): Target specific feature for coverage analysis
  • --page (-p): Target specific page for coverage analysis
  • --reporter (-r): Set test result output format
  • --file-reporter: Save test results to file

Output:

  • Merged LCOV file: coverage/merge_lcov.info
  • HTML report: Configured output directory (default: coverage/html)

Exceptions:

Inheritance

Constructors

CoverageCommand()

Properties

aliases List<String>
Alternate names for this command.
no setterinherited
argParser ArgParser
The argument parser for this command.
no setterinherited
argResults ArgResults?
The parsed argument results for this command.
no setterinherited
category String
The command's category.
no setteroverride
description String
A description of this command, included in usage.
no setteroverride
globalResults ArgResults?
The parsed global argument results.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
hidden bool
Whether or not this command should be hidden from help listings.
no setterinherited
invocation String
A single-line template for how to invoke this command (e.g. "pub get package").
no setterinherited
name String
The name of this command.
no setteroverride
parent Command?
The command's parent command, if this is a subcommand.
no setterinherited
runner CommandRunner?
The command runner for this command.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
subcommands Map<String, Command>
An unmodifiable view of all sublevel commands of this command.
no setterinherited
suggestionAliases List<String>
Alternate non-functional names for this command.
no setterinherited
summary String
A short description of this command, included in parent's CommandRunner.usage.
no setterinherited
takesArguments bool
Whether or not this command takes positional arguments in addition to options.
no setterinherited
usage String
Generates a string displaying usage information for this command.
no setterinherited
usageFooter String?
An optional footer for usage.
no setterinherited

Methods

addSubcommand(Command command) → void
Adds Command as a subcommand of this.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
printUsage() → void
Prints the usage information for this command.
inherited
run() → void
Runs this command.
override
toString() String
A string representation of this object.
inherited
usageException(String message) → Never
Throws a UsageException with message.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited