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

  1. 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>
  1. Update Dependencies
    • Right-click on the project β†’ Maven β†’ Update Project (or mvn clean install in the terminal).

For Gradle Users

  1. 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'
}
  1. Refresh Dependencies
    • Run gradle build or Refresh Gradle Project in the IDE.

Setting Up Cucumber in Eclipse/IntelliJ

In Eclipse

  1. Install Cucumber Plugin

    • Go to Help β†’ Eclipse Marketplace
    • Search for "Cucumber Eclipse Plugin" and install it
  2. 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  
  1. Create a Feature File
    • Inside src/test/resources, create a new .feature file:
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
  1. Create Step Definitions
    • Inside src/test/java, create a package (e.g., stepDefinitions) and a Java class:
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");
    }
}
  1. Create a Test Runner
    • Inside src/test/java, create a package (e.g., runners) and a test runner class:
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 {
}
  1. Run the Test
    • Right-click on TestRunner.java β†’ Run as JUnit Test

In IntelliJ IDEA

  1. Install Cucumber Plugin

    • Go to File β†’ Settings β†’ Plugins
    • Search for Cucumber for Java and install it
  2. Create a New Cucumber Project

    • Create a Gradle/Maven project
    • Add Cucumber dependencies to build.gradle or pom.xml
    • Follow the same folder structure as in Eclipse
  3. Write Feature Files & Step Definitions

    • Follow the same example as shown above
  4. Run Cucumber Tests

    • Right-click on TestRunner.java β†’ Run as JUnit Test

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.