0

I am trying to implement parallel test execution using cucumber 4.0, but observing issues.

As per details on cucumbers website: https://cucumber.io/docs/guides/parallel-execution/#testng

I included following dependency in pom.xml: (apart from other existing dependencies for testng, etc)

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-jvm</artifactId>
            <version>4.4.0</version>
            <type>pom</type>
        </dependency>

I added following code in runner file:

enter image description here

    @Override
    @DataProvider(parallel = true)
    public Object[][] scenarios() {
        return super.scenarios();
    }

I am seeing following errors on above mentioned code:

The method scenarios() of type Baserunner must override or implement a supertype method.  (error on line 62)

The method scenarios() is undefined for the type AbstractTestNGCucumberTests  (error on line 63)

If my implementation looks wrong, please let me know!

vsingh
  • 125
  • 1
  • 2
  • 16

2 Answers2

0

You should create the one more abstract class like AbstractTestNGCucumberParallelTest within same package and extend to @cucumberOptions annotation like below:

package runner;
import cucumber.api.CucumberOptions;

@CucumberOptions(glue = "stepdefs", features = ".")
public class RunnerIT extends AbstractTestNGCucumberParallelTest{

}
*********************************************
package runner;

import org.testng.annotations.DataProvider;

import cucumber.api.testng.AbstractTestNGCucumberTests;

public abstract class AbstractTestNGCucumberParallelTest extends AbstractTestNGCucumberTests {

    @Override
    @DataProvider(parallel = true)
    public Object[][] scenarios() {
        return super.scenarios();
    }

}
David Buck
  • 3,752
  • 35
  • 31
  • 35
-1

I have created a sample project here is the link below: https://github.com/racchouhan12/SeleniumCucumber5/blob/master/src/test/java/com/testautomation/test/stepdefinitions/Runners/TestRunner.java.

The TestRunner.java extends AbstractTestNGCucumber class and it uses Cucumber 5.

Also you can match dependencies with above project so in case if any dependencies are missing you can add them.

Here are the cucumber dependencies

<cucumber.version>5.7.0</cucumber.version>

<dependency>
           <groupId>io.cucumber</groupId>
           <artifactId>cucumber-java8</artifactId>
           <version>${cucumber.version}</version>
       </dependency>

       <dependency>
           <groupId>io.cucumber</groupId>
           <artifactId>cucumber-java</artifactId>
           <version>${cucumber.version}</version>
       </dependency>

       <dependency>
           <groupId>io.cucumber</groupId>
           <artifactId>cucumber-testng</artifactId>
           <version>${cucumber.version}</version>
           <scope>test</scope>
       </dependency>

       <dependency>
           <groupId>io.cucumber</groupId>
           <artifactId>cucumber-core</artifactId>
           <version>${cucumber.version}</version>
       </dependency>

       <dependency>
           <groupId>io.cucumber</groupId>
           <artifactId>cucumber-junit</artifactId>
           <version>${cucumber.version}</version>
           <scope>test</scope>
       </dependency>

cucumber-java8 dependency requires only if you write lambda style step definitions. Let me know if it helps.

  • 1
    A link to a solution is welcome, but please ensure your answer is useful without it: [add context around the link](//meta.stackexchange.com/a/8259) so your fellow users will have some idea what it is and why it’s there, then quote the most relevant part of the page you're linking to in case the target page is unavailable. [Answers that are little more than a link may be deleted.](//stackoverflow.com/help/deleted-answers) –  Jul 29 '20 at 17:13