Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reports are not generated when the build is failed in Maven Cucumber Reports

Reports are generating successfully when the build is successful but when there are any failed cases which cause build failure, reports are not generated.

checkBuildResult is already set to false

pom file plugin

     <plugin>
        <groupId>net.masterthought</groupId>
        <artifactId>maven-cucumber-reporting</artifactId>
        <version>3.13.0</version>
        <executions>
            <execution>
                <id>execution</id>
                <phase>verify</phase>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <projectName>Simplify360 Automation Test Report</projectName>
                    <outputDirectory>${project.build.directory}/site/cucumber-reports</outputDirectory>
                    <cucumberOutput>${project.build.directory}/cucumber.json</cucumberOutput>
                    <!-- <jsonFiles>
                        <param>${project.build.directory}/cucumber.json</param>
                    </jsonFiles> -->
                    <!-- <parallelTesting>false</parallelTesting> -->
                    <buildNumber>8.4.1.2</buildNumber>
                    <checkBuildResult>false</checkBuildResult>
                </configuration>
            </execution>
        </executions>
    </plugin>

And the runner class is as below,

  @RunWith(Cucumber.class)
    @CucumberOptions(
            features = {"classpath:features"},
            plugin = {"pretty","json:target/cucumber.json"},
            tags = {"@currentTest"},
            glue={"helpers","stepDefinitions"},
            monochrome = true
            )
    public class RunCukesTest{

    }
like image 778
Nagarjuna Reddy Avatar asked Dec 20 '17 11:12

Nagarjuna Reddy


People also ask

Does cucumber generate reports?

Cucumber uses reporter plugins to produce reports that contain information about what scenarios have passed or failed. Some plugins are built-in, others have to be installed separately. You can also build your own. This page documents built-in formatter plugins, custom formatters and some common third-party plugins.

How do I create a maven report in cucumber?

Run As -> maven build as shown in the image: In the Configuration window, we have to give Goals as verify and Run. Ensure build is successful. Once build is successful, check the \target\cucumber-html-reports\report-feature_xxxxxxx.

Which report cucumber can generate by default?

Pretty Format (HTML Report)

How does selenium generate reports in cucumber?

For HTML reports, add html:target/cucumber-reports to the @CucumberOptions plugin option. Note: We have specified the path of the Cucumber report, which we want it to generate it under the target folder. This will generate an HTML report at the location mentioned in the formatter itself.


2 Answers

Add the following configuration to the sure fire plugin. It will not stop the maven execution after the failure. Then it will generate the report.

<testFailureIgnore>true</testFailureIgnore>

as given below with your existing configuration.

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.20</version>
      <configuration>
        <testFailureIgnore>true</testFailureIgnore>
     </configuration>
</plugin>
like image 71
Murthi Avatar answered Oct 14 '22 21:10

Murthi


There is flag present for same which is as below:

<checkBuildResult>true</checkBuildResult>

<!-- Set true to fail build on test failures -->
<!-- Set false to pass build on test failures -->

You need to set in the configuration tag as below:

 <configuration>
        <projectName>oasys-confirmations</projectName>
        <outputDirectory>${project.build.directory}</outputDirectory>
       <cucumberOutput>${project.build.directory}/cucumber.json</cucumberOutput>
       <checkBuildResult>true</checkBuildResult>
</configuration>

New config:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>
            <plugin>
                <groupId>net.masterthought</groupId>
                <artifactId>maven-cucumber-reporting</artifactId>
                <version>3.20.0</version>
                <executions>
                    <execution>
                        <id>execution</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <projectName>cucumber-jvm-example</projectName>
                            <!-- output directory for the generated report -->
                            <outputDirectory>${project.build.directory}</outputDirectory>
                            <!-- optional, defaults to outputDirectory if not specified -->
                            <inputDirectory>${project.build.directory}/</inputDirectory>
                            <jsonFiles>
                                <!-- supports wildcard or name pattern -->
                                <param>**/*.json</param>
                            </jsonFiles>
                            <!-- optional, defaults to outputDirectory if not specified -->
                            <classificationDirectory>${project.build.directory}/</classificationDirectory>
                            <classificationFiles>
                                <!-- supports wildcard or name pattern -->
                                <param>sample.properties</param>
                                <param>other.properties</param>
                            </classificationFiles>
                            <parallelTesting>false</parallelTesting>
                            <checkBuildResult>true</checkBuildResult>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Old Config working till 3.16.0 version:

                 <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.19.1</version>
                        <configuration>
                            <testFailureIgnore>true</testFailureIgnore>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>net.masterthought</groupId>
                        <artifactId>maven-cucumber-reporting</artifactId>
                        <version>3.16.0</version>
                        <executions>
                            <execution>
                                <id>execution</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                                <configuration>
                                    <projectName>>cucumber-jvm-example</projectName>
                                    <outputDirectory>${project.build.directory}</outputDirectory>
                                    <cucumberOutput>${project.build.directory}/cucumber.json</cucumberOutput>
                                    <checkBuildResult>true</checkBuildResult>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

NOTE If you get same problem After this configuration then
1. Run RunnerFile Normally TestNG
2. Run Pom.xml as Maven install. 3. Check target folder there is a TagName.html file open it and view the result.

like image 25
Shubham Jain Avatar answered Oct 14 '22 20:10

Shubham Jain