How to run cucumber file from command line

Durgesh picture Durgesh · Jun 2, 2015 · Viewed 36k times · Source

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.

Answer

Sébastien Le Callonnec picture Sébastien Le Callonnec · Jun 3, 2015

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