CucumberCommand class
Runs integration tests using Cucumber/Gherkin feature files.
The CucumberCommand generates and executes integration tests from .feature files written in Gherkin syntax. It supports device targeting, flavor-specific testing, and generates HTML reports for test results.
Usage
Run all feature tests:
morpheme cucumber
Run specific feature tests:
morpheme cucumber login,checkout
Run with specific flavor:
morpheme cucumber --flavor production
Run on specific device:
morpheme cucumber --device-id emulator-5554
Options
--flavor: Target environment flavor (default: dev)--morpheme-yaml: Path to morpheme.yaml configuration--generate-l10n: Generate localization files before testing--device-id: Target device identifier for testing
Feature Files
Tests are discovered from integration_test/features/*.feature files.
Each .feature file should contain Gherkin scenarios describing
the integration test behavior.
Report Generation
- Generates NDJSON output for test processing
- Creates HTML reports when npm is available
- Reports are saved to
integration_test/report/
Dependencies
- Requires
gherkincommand-line tool - Uses Flutter integration test framework
- Optional: npm for HTML report generation
- Requires valid morpheme.yaml configuration
Exceptions
Throws ProcessException if gherkin tool is not found.
Throws FileSystemException if feature files are missing.
Throws TestFailureException if integration tests fail.
Constructors
- CucumberCommand()
- Creates a new instance of CucumberCommand.
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
-
formatDurationInHhMmSs(
Duration duration) → String - Formats duration in HH:MM:SS format for display.
-
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