12

I have cucumber feature file located at below location on my local:

C:\ProjectWork\Workspace\Cucumber\DIT_Cucumber\src\cucumber\featureOne.feature

and Junit jar at below location:

C:\DurgeshProjectWork\Workspace\JarFiles\junit-4.11.jar

When I have tried several commands like below to execute the feature file from command prompt however all the time getting same error as

Could not fine class

Below are the commands which I used: Command 1:

C:\>java -cp C:\ProjectWork\Workspace\JarFiles\junit-4.11.jar org.junit.runner.JUnitCore C:\DurgeshProjectWork\Workspace\Cucumbe
r\DIT_Cucumber\bin\cucumber\featureOne.feature

Command 2:

C:\ProjectWork\Workspace\Cucumber\DIT_Cucumber\src\cucumber>java -cp C:\ProjectWork\Workspace\JarFiles\junit-4.11.jar org
.junit.runner.JUnitCore featureOne.feature

Could you please help me to run this feature file from command line. Thanks in advance.

Durgesh
  • 585
  • 4
  • 12
  • 33

2 Answers2

15

JUnit Approach

If using JUnit, you can run the test the same way you would run a JUnit test on the command line:

java -cp <classpath> org.junit.runner.JUnitCore com.example.test.RunCukesTest

where RunCukesTest is the unit test that sets all the cucumber options, e.g.:

package com.example.test;

import org.junit.runner.RunWith;

import cucumber.api.junit.Cucumber;
import cucumber.api.CucumberOptions;

@RunWith(Cucumber.class)
@CucumberOptions(plugin = "json:target/report.json")
public class RunCukesTest {
}

Cucumber-jvm Approach

You can also use cucumber-jvm on the command line:

java -cp <classpath> cucumber.api.cli.Main \
   --glue com.example.test \
   --plugin pretty path/to/features

Maven

The challenge in both previous cases is to build the classpath and make sure all the dependencies are properly loaded, including your own classes and the feature files. An easier solution would be to use for example Maven to define all the deps; running the tests is then as simple as:

mvn verify
Sébastien Le Callonnec
  • 26,254
  • 8
  • 67
  • 80
  • Thanks for detailed info, can you please clarify how to do with gradle as well ? gradle is replacing maven and it will be nice to include it as well in the answer. Thanks, Vikram – vikramvi Apr 28 '17 at 08:27
  • Hi, what about using `cucumber.options` from command line without maven? Do you know how to use it? – neshkeev May 22 '17 at 16:56
0

Cucumber with Java:

Run Feature: java -cp "jars/*" cucumber.api.cli.Main -p pretty features

compile Step Definition file: javac -cp "jars/*" step_definition/StepDef.java

Run Scenario: java -cp "jars/*;." cucumber.api.cli.Main -p pretty -g step_definition features

MushyPeas
  • 2,469
  • 2
  • 31
  • 48