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 gherkin command-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.

Inheritance

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
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
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