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:
- Execute tests with coverage enabled across all modules
- Merge LCOV files from all modules into a unified report
- Remove ignored files/patterns as configured in morpheme.yaml
- 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:
lcovtool must be installed for processing coverage filesgenhtmltool 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:
- Throws ConfigurationException if coverage config is missing
- Throws
ToolExceptionif lcov/genhtml tools are not found - Throws ProcessException if coverage processing fails
Constructors
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
-
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 getpackage").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
-
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