serenity-bdd / serenity-maven-plugin

19 stars 21 forks source link

ERROR net.thucydides.core.requirements.model.cucumber.CucumberParser - Found no Cucumber 2.x.x class cucumber #66

Closed Gurunathan5029 closed 5 years ago

Gurunathan5029 commented 5 years ago

Hi All,

While running my Serenity code after recent updates on the versions, I am getting following error message

Error/Console Log:

ERROR net.thucydides.core.requirements.model.cucumber.CucumberParser - Found no Cucumber 2.x.x class cucumber.runtime.model.CucumberFeature failed loading CucumberFeatures java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at net.thucydides.core.requirements.model.cucumber.CucumberParser.loadCucumberFeatures(CucumberParser.java:99) at net.thucydides.core.requirements.model.cucumber.CucumberParser.loadFeature(CucumberParser.java:71) at net.thucydides.core.requirements.model.cucumber.CucumberParser.loadFeatureNarrative(CucumberParser.java:109) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.loadFromFeatureFile(FileSystemRequirementsTagProvider.java:584) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.readRequirementsFromStoryOrFeatureFile(FileSystemRequirementsTagProvider.java:541) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.loadStoriesFrom(FileSystemRequirementsTagProvider.java:523) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:159) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:670) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:607) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:534) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.loadCapabilitiesFrom(FileSystemRequirementsTagProvider.java:516) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:157) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.requirementWithMatchingFeatureFile(FileSystemRequirementsTagProvider.java:238) at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getTagsFor(FileSystemRequirementsTagProvider.java:212) at net.thucydides.core.model.TestOutcome.getTagsUsingTagProviders(TestOutcome.java:1751) at net.thucydides.core.model.TestOutcome.getTags(TestOutcome.java:1736) at net.thucydides.core.model.TestOutcome.addVersionsDefinedInTagsTo(TestOutcome.java:1616) at net.thucydides.core.model.TestOutcome.getVersions(TestOutcome.java:1611) at net.thucydides.core.model.TestOutcome.calculateDynamicFieldValues(TestOutcome.java:338) at net.thucydides.core.reports.json.gson.GsonJSONConverter.toJson(GsonJSONConverter.java:81) at net.thucydides.core.reports.json.JSONTestOutcomeReporter.generateReportFor(JSONTestOutcomeReporter.java:60) at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:239) at net.thucydides.core.reports.ReportService.lambda$generateReportsFor$0(ReportService.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: cucumber.runtime.CucumberException: gherkin.ParserException$CompositeParserException: Parser errors: (123:1): inconsistent cell count within the table at cucumber.runtime.FeatureBuilder.parse(FeatureBuilder.java:60) at cucumber.runtime.model.CucumberFeature.loadFromFeaturePath(CucumberFeature.java:113) at cucumber.runtime.model.CucumberFeature.load(CucumberFeature.java:49) ... 46 more

Pom.xml:

<?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">

4.0.0
<groupId>net.serenity-bdd.demos</groupId>
<artifactId>cucumber-webtests</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>AMS Automation</name>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    <serenity.version>2.0.23</serenity.version>
    <serenity.maven.version>2.0.24</serenity.maven.version>
    <serenity.cucumber.version>1.9.20</serenity.cucumber.version>
    <webdriver.driver>chrome</webdriver.driver>
</properties>
<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>bintray</name>
        <url>http://jcenter.bintray.com</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>bintray-plugins</name>
        <url>http://jcenter.bintray.com</url>
    </pluginRepository>
</pluginRepositories>
<dependencies>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-core</artifactId>
        <version>${serenity.version}</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-cucumber</artifactId>
        <version>${serenity.cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-junit</artifactId>
        <version>${serenity.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>1.7.0</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.lambdaj</groupId>
        <artifactId>lambdaj</artifactId>
        <version>2.3.3</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-jira-plugin</artifactId>
        <version>1.1.2-rc.1</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>1.8.6</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-jira-requirements-provider</artifactId>
        <version>1.1.3-rc.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.9</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.directory.studio</groupId>
        <artifactId>org.dom4j.dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
    </dependency>
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.8.3</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18</version>
            <configuration>
                <parallel>methods</parallel>
                <threadCount>10</threadCount>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.18</version>
            <configuration>
                <includes>
                    <include>**/cucumber/junit/**/*.java</include>
                    <include>**/cucumber/*.java</include>
                </includes>
                <reuseForks>true</reuseForks>
                <!--<forkCount>2</forkCount> -->
                <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
                <systemPropertyVariables>
                    <webdriver.driver>chrome</webdriver.driver>
                    <maven.test.ignore.failure>true</maven.test.ignore.failure>
                    <thucydides.estimated.tests.per.requirement>2</thucydides.estimated.tests.per.requirement>
                </systemPropertyVariables>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>net.serenity-bdd.maven.plugins</groupId>
            <artifactId>serenity-maven-plugin</artifactId>
            <version>${serenity.maven.version}</version>
            <executions>
                <execution>
                    <id>serenity-reports</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>net.serenity-bdd</groupId>
                    <artifactId>serenity-jira-requirements-provider</artifactId>
                    <version>1.1.3-rc.1</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

wakaleo commented 5 years ago

Looks like a problem with one of your feature files:

Caused by: cucumber.runtime.CucumberException: gherkin.ParserException$CompositeParserException: Parser errors:
(123:1): inconsistent cell count within the table
Gurunathan5029 commented 5 years ago

I have not modified anything in my feature file . It is same for long time and it was working. I am adding my feature file here as well, let me know if I miss anything here. I am not sure on the cucumber updates since I am running these scripts after a year.

@UniqueBrowser @issue:XXXXXX-13 Feature: XXXXX Selection

Scenario: Login Given I Login to XXX Application |Username|Password| |XXXXXXX|@XXXXXX|

Scenario Outline: Build Validation Given I have logged in to XXX Default When I Click on XXX List hub And I Navigate to in firstlevel menu And I Navigate to in secondlevel menu And I Navigate to in thirdlevel menu Then Page should be displayed

Examples: 
    |Selected Option|Sub Option               |subchild option             |Page Name                |

Runner Class: package net.thucydides.showcase.cucumber;

import cucumber.api.CucumberOptions; import net.serenitybdd.cucumber.CucumberWithSerenity; import net.thucydides.showcase.supportLibraries.HTMLParsing;

import org.junit.After; import org.junit.runner.RunWith;

@RunWith(CucumberWithSerenity.class)

@CucumberOptions(features={"src/test/resources/features/Debug/Debug.feature"}

) public class Runtest { }

wakaleo commented 5 years ago

It may be having issues with the @ character in the table.

Gurunathan5029 commented 5 years ago

I am not sure its because of that. I have tried without @ in place and its still posting me same error. I don't understand why its failing after the version update.

wakaleo commented 5 years ago

Can you provide a sample project that reproduces the issue?

Gurunathan5029 commented 5 years ago

Sorry Wakaleo, I can't produce you the project since its a huge one with all private data involved. Is there any alternative.

Gurunathan5029 commented 5 years ago

I tried running as Cucumber feature, its working fine but the problem is only when running the same test as Serenity runner

wakaleo commented 5 years ago

We can't do much without a sample project that reproduces the issue.

Gurunathan5029 commented 5 years ago

Please find the sample part. I have removed my private data and that wont affect this run. SerenityError.zip

bryanvaldellon commented 5 years ago

Please find the sample part. I have removed my private data and that wont affect this run. SerenityError.zip

Hi sir, any updates on this? I also got the same error.

wakaleo commented 5 years ago

The sample code provided has an invalid Gherkin file (unlatching "|" in the example table). For a correct, up to date Serenity Cucumber config, see https://github.com/serenity-bdd/serenity-cucumber or https://github.com/serenity-bdd/serenity-cucumber4.

wakaleo commented 5 years ago

Closed for lack of activity (presume answered).