</>

Technology

Cucumber

Difficulty

Beginner

Interview Question

How do you execute a Cucumber feature file from the command line?

Answer

Executing Cucumber from the Command Line

Basic Maven Execution

Bash
# Run all tests (all feature files in configured path)
mvn test

# Run with specific testng.xml
mvn test -DsuiteXmlFile=testng.xml

Run Specific Scenario by Line Number

Bash
# Run specific line in feature file
mvn test -Dcucumber.features="src/test/features/login.feature:4"

# The original command format
mvn test -Dcucumber.option="src/test/features/login.feature:4"

Filter by Tags

Bash
# Run only @smoke tests
mvn test -Dcucumber.filter.tags="@smoke"

# Run @regression but exclude @slow
mvn test -Dcucumber.filter.tags="@regression and not @slow"

# Run @smoke OR @sanity
mvn test -Dcucumber.filter.tags="@smoke or @sanity"

Run Specific Feature File

Bash
mvn test -Dcucumber.features="src/test/resources/features/login.feature"

Pass Multiple Options

Bash
mvn test \
  -Dcucumber.features="src/test/resources/features" \
  -Dcucumber.filter.tags="@smoke" \
  -Dcucumber.plugin="html:target/report.html,json:target/cucumber.json"

Skip Tests (just compile)

Bash
mvn test -DskipTests

Environment-Specific Execution

Bash
# Pass browser type as system property
mvn test -Dbrowser=firefox -Denvironment=staging

Complete CLI Execution Reference

Bash
# Standard run
mvn clean test

# Specific tag
mvn clean test -Dcucumber.filter.tags="@login"

# Specific feature file
mvn clean test -Dcucumber.features="src/test/resources/features/login.feature"

# Specific scenario line
mvn clean test -Dcucumber.features="src/test/resources/features/login.feature:12"

# Run with profile (Maven profile)
mvn clean test -Pstaging

Without Maven (Direct Java)

Bash
java -cp "target/classes:target/test-classes:lib/*" \
  io.cucumber.core.cli.Main \
  --features src/test/resources/features \
  --glue stepDefinitions \
  --plugin html:target/report.html \
  --tags @smoke

Follow AutomateQA

Related Topics