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
