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