Search code examples
cucumbercucumber-junit

Updating cucumber-java from 1.2.4 of info.cukes's to 4.2.2 of cucumber.io throwing import Given(Or When/Then) cannot be resolved error


As part of update, I had to migrate from info.cukes's cucumber-java with version 1.2.4 to io.cucumber's cucumber-java with version 4.2.2, but the code which ran successfully with older version of cucumber started throwing error, which says The import cucumber.api.java.en.Given(Or When/Then) cannot be resolved

Below is the cucumber class from where execution is starting

    {
     @RunWith(Cucumber.class)
     @CucumberOptions(features = "classpath:features/functional/",
     glue = {"com.jacksparrow.automation.steps_definitions.functional" },
     tags = { "@guest_search_in_progress" },
     plugin = { "pretty","json:target/cucumber-json/cucumber.json",
     "junit:target/cucumber-reports/Cucumber.xml", "html:target/cucumber- 
     reports"},
     strict = false,
     dryRun = false,
     monochrome = true)
      public class FunctionalRunCuke {
     }

     <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-core</artifactId>
                <version>4.2.2</version>
            </dependency>

            <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>4.2.2</version>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-junit</artifactId>
                <version>4.2.2</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-jvm-deps</artifactId>
                <version>1.0.6</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>gherkin</artifactId>
                <version>6.0.14</version>
            </dependency>

            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>1.10.19</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-testng</artifactId>
                <version>2.0.0</version>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-picocontainer</artifactId>
                <version>2.1.0</version>
                <scope>test</scope>
            </dependency>





     }

Please suggest what should i do to resolve this


Solution

  • Please use below dependencies in POM & add JUnit/TestNG dependency based on your framework requirement. (Just change v. 4.2.3 to V.4.2.2)

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.2.3</version>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.2.3</version>
        <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>datatable</artifactId>
        <version>1.1.12</version>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-testng</artifactId>
        <version>4.2.3</version>
    </dependency>
    
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-picocontainer</artifactId>
        <version>4.2.3</version>
        <scope>test</scope>
    </dependency>