Cucumber runner file is not running any Tests

Viewed 458

I have checked the related questions, but couldn't find any answer for my problem. I am trying to set up cucumber framework from scratch.

I set up the POM, test runner, a feature file and related step definitions.

But when I run the test, there is no error but none of the test runs. I tried giving glue also in my runner file. Its not running from intellij as well as from command line.

Giving all the files for reference. Please see if anybody is able to point the error I am making?

POM

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.demo</groupId>
    <artifactId>TestCucumber</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>TestCucumber</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <cucumber.version>7.2.3</cucumber.version>
        <maven-cucumber-reporting.version>5.6.1</maven-cucumber-reporting.version>
        <project.name>TestCucumber</project.name>

    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.masterthought</groupId>
            <artifactId>cucumber-reporting</artifactId>
            <version>${maven-cucumber-reporting.version}</version>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-core</artifactId>
            <version>${cucumber.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>${cucumber.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>${cucumber.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.4.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>net.masterthought</groupId>
                <artifactId>maven-cucumber-reporting</artifactId>
                <version>${maven-cucumber-reporting.version}</version>
                <executions>
                    <execution>
                        <id>execution-dwp-employment-income-api</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <!-- report generation is happening at this phase, so please dont change-->
                        <phase>integration-test</phase>
                        <configuration>
                            <projectName>${project.name}</projectName>
                            <skip>false</skip>
                            <!-- output directory for the generated report -->
                            <outputDirectory>${project.build.directory}/jsonReports/reports</outputDirectory>
                            <!-- optional, defaults to outputDirectory if not specified -->
                            <inputDirectory>${project.build.directory}/jsonReports</inputDirectory>
                            <jsonFiles>
                                <!-- supports wildcard or name pattern -->
                                <param>**/*.json</param>
                            </jsonFiles>
                            <mergeFeaturesById>false</mergeFeaturesById>
                            <!-- optional, set true to get a final report with latest results of the same test from different test runs -->
                            <mergeFeaturesWithRetest>false</mergeFeaturesWithRetest>
                            <!-- optional, set true to fail build on test failures -->
                            <checkBuildResult>false</checkBuildResult>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

Runner File

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/test/resources/features",
        tags = "@Test",
        monochrome = true,
       plugin = {"json:target/cucumber.json"}
)
public class CucumberTestDebugger {
}

Feature file

@Test
Feature: As user I want to Validate the feature
  Scenario : Scenario 1 for the Feature
    Given A sample record is present

Step definition

import io.cucumber.java.en.Given;

public class Feature1Step {
    @Given("A sample record is present")
    public void aSampleScenario() {
        System.out.println("RECORD IS PRESENT");
    }
}

Even if I just run the feature file for which step definition is not defined, that scenario also doesn't run. Usually it should give error for undefined steps in feature. It just shows -

C:\Users\myname\Java\jdk8\bin\java.exe -C:/Users/myname/IdeaProjects/TestCucumber/src/test/resources/features/Validate.feature
    Testing started at 16:34 ...
    
    0 Scenarios
    0 Steps
    0m0.324s

Thanks in advance!!!

1 Answers

Aggghhhhh..... I had an extra space after Scenario. Silly mistake !!! Took hours

  **Before**
    Scenario : Scenario 1 for the Feature
  **After**
     Scenario: Scenario 1 for the Feature
Related