Before using Cucumber for test automation, we need to set up the environment and configure dependencies in a project. Cucumber can be integrated with Java using build tools like Maven or Gradle and run in IDEs like Eclipse or IntelliJ IDEA.
Installing Cucumber for Java
To install Cucumber for Java, follow these steps:
Prerequisites
- Java JDK (8 or later) installed
- Maven or Gradle installed
- Eclipse or IntelliJ IDEA installed
Adding Cucumber Dependencies in Maven/Gradle
For Maven Users
- Create a Maven Project
- Open Eclipse/IntelliJ
- Create a new Maven project
- Add the following dependencies to
pom.xml
:
<dependencies>
<!-- Cucumber Core -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>7.15.0</version>
</dependency>
<!-- Cucumber JUnit for Running Tests -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>7.15.0</version>
<scope>test</scope>
</dependency>
<!-- Cucumber TestNG (Optional if using TestNG instead of JUnit) -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>7.15.0</version>
</dependency>
<!-- Selenium WebDriver (Optional) -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.8.3</version>
</dependency>
</dependencies>
- Update Dependencies
- Right-click on the project β Maven β Update Project (or
mvn clean install
in the terminal).
- Right-click on the project β Maven β Update Project (or
For Gradle Users
- Create a Gradle Project
- Open IntelliJ/Eclipse
- Create a new Gradle project
- Add the following dependencies to
build.gradle
:
dependencies {
// Cucumber Core
implementation 'io.cucumber:cucumber-java:7.15.0'
// Cucumber JUnit
testImplementation 'io.cucumber:cucumber-junit:7.15.0'
// Cucumber TestNG (Optional)
testImplementation 'io.cucumber:cucumber-testng:7.15.0'
// Selenium WebDriver (Optional)
implementation 'org.seleniumhq.selenium:selenium-java:4.8.3'
}
- Refresh Dependencies
- Run
gradle build
or Refresh Gradle Project in the IDE.
- Run
Setting Up Cucumber in Eclipse/IntelliJ
In Eclipse
-
Install Cucumber Plugin
- Go to Help β Eclipse Marketplace
- Search for "Cucumber Eclipse Plugin" and install it
-
Create a New Cucumber Project
- Go to File β New β Maven Project
- Add dependencies in
pom.xml
(as shown above) - Create the required folder structure:
src/test/java β For step definitions & test runners
src/test/resources β For feature files
- Create a Feature File
- Inside
src/test/resources
, create a new.feature
file:
- Inside
Feature: Login Functionality
Scenario: Successful login
Given the user is on the login page
When the user enters valid credentials
Then the user is redirected to the homepage
- Create Step Definitions
- Inside
src/test/java
, create a package (e.g.,stepDefinitions
) and a Java class:
- Inside
package stepDefinitions;
import io.cucumber.java.en.*;
public class LoginSteps {
@Given("the user is on the login page")
public void userOnLoginPage() {
System.out.println("User is on login page");
}
@When("the user enters valid credentials")
public void userEntersCredentials() {
System.out.println("User enters credentials");
}
@Then("the user is redirected to the homepage")
public void userRedirectedToHomepage() {
System.out.println("User is redirected to homepage");
}
}
- Create a Test Runner
- Inside
src/test/java
, create a package (e.g.,runners
) and a test runner class:
- Inside
package runners;
import org.junit.runner.RunWith;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
@RunWith(Cucumber.class)
@CucumberOptions(
features = "src/test/resources",
glue = "stepDefinitions",
plugin = {"pretty", "html:target/cucumber-reports.html"},
monochrome = true
)
public class TestRunner {
}
- Run the Test
- Right-click on TestRunner.java β Run as JUnit Test
In IntelliJ IDEA
-
Install Cucumber Plugin
- Go to File β Settings β Plugins
- Search for Cucumber for Java and install it
-
Create a New Cucumber Project
- Create a Gradle/Maven project
- Add Cucumber dependencies to
build.gradle
orpom.xml
- Follow the same folder structure as in Eclipse
-
Write Feature Files & Step Definitions
- Follow the same example as shown above
-
Run Cucumber Tests
- Right-click on
TestRunner.java
β Run as JUnit Test
- Right-click on
Conclusion
Cucumber setup is straightforward with Maven/Gradle and works seamlessly in both Eclipse and IntelliJ. By following these steps, you can configure Cucumber and start writing BDD test cases with Selenium WebDriver.