How to Cucumber : Test Reporting Plugin with Maven and Java

cucumber-logoIt is often useful to show the results of our tests to others people who are not developers, like managers or executive. This tutorial shows how to integrate a Cucumber reporting a Java plugin in Maven project. The result is a simple web page, which does not require a special tool to be read.


EDIT: this post is deprecated. There is a better version of Cucumber Report plugin, without jars to download. Please read the new post here:
https://damienfremont.com/2016/05/09/how-to-cucumber-test-report-plugin-2-with-maven-and-java/


This tutorial will cover 3 reports plugins : JSON, HTML Pretty and HTML Reports.

ScreenShot001 ScreenShot002 ScreenShot003

Native JSON Result

ScreenShot001

How to:

pom.xml



    4.0.0
    com.damienfremont.blog
    20150730-test-cucumber_plugin_reporting
    0.0.1-SNAPSHOT
    jar
    
        
            junit
            junit
            4.12
            test
        
        
            info.cukes
            cucumber-junit
            1.2.3
            test
        
        
            info.cukes
            cucumber-java8
            1.2.3
            test
        
    

RunBDDTest.java

@RunWith(Cucumber.class)
@CucumberOptions(strict = false, features = "features", format = { "pretty",
		"json:target/cucumber.json" }, tags = { "~@ignore" })
public class RunBDDTest {

}

Demo:

Launch with JUnit or

>mvn test

The result is at /target/cucumber.json

ScreenShot009

Native HTML Plugin

ScreenShot002

How to:

RunBDDTest.java

@RunWith(Cucumber.class)
@CucumberOptions(strict = false, features = "features", format = { "pretty",
		"html:target/site/cucumber-pretty",
		"json:target/cucumber.json" }, tags = { "~@ignore" })
public class RunBDDTest {

}

Demo:

Launch with JUnit or

>mvn test

The result is at /target/site/cucumber-pretty/index.html

ScreenShot008

Cucumber-Reports HTML Plugin

ScreenShot003

ScreenShot004

How to:

pom.xml



    4.0.0
    com.damienfremont.blog
    20150730-test-cucumber_plugin_reporting
    0.0.1-SNAPSHOT
    jar
    
        
            junit
            junit
            4.12
            test
        
        
            info.cukes
            cucumber-junit
            1.2.3
            test
        
        
            info.cukes
            cucumber-java8
            1.2.3
            test
        

        <!-- REPORTING -->
        
            com.googlecode.totallylazy
            totallylazy
            1.20
            system
            ${project.basedir}/lib/totallylazy-1.20.jar
        
        
            net.masterthought
            cucumber-reporting
            0.0.24
        

    
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.3
                
                    1.8
                    1.8
                
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                2.18.1
                
                    true
                    
                        **/*BDDTest.java
                    
                
            
            
                net.masterthought
                maven-cucumber-reporting
                0.0.5
                
                    
                        com.googlecode.totallylazy
                        totallylazy
                        991
                        system
                        ${project.basedir}/lib/totallylazy-991.jar
                    
                
                
                    
                        execution
                        verify
                        
                            generate
                        
                        
                            cucumber-jvm-example
                            ${project.build.directory}/site/cucumber-reports
                            ${project.build.directory}/cucumber.json
                            false
                            true
                        
                    
                
            

        
    

And two libs (external to Maven repositories)

https://code.google.com/p/totallylazy/downloads/list

ScreenShot005

RunBDDTest.java

@RunWith(Cucumber.class)
@CucumberOptions(strict = false, features = "features", format = { "pretty",
		"html:target/site/cucumber-pretty",
		"json:target/cucumber.json" }, tags = { "~@ignore" })
public class RunBDDTest {

}

Demo:

Launch with

mvn clean install

The result is at /target/site/cucumber-reports/feature-overview.html

ScreenShot007

Conclusion

JSON is OK for integration with other tools (jenkins plugin, reports, etc).

Pretty HTML is OK during development phase (like a JUnit or Surefire report for versionning).

Cucumber-Reports is good for reporting outside of the dev team (like managers).

Source

https://github.com/DamienFremont/blog/tree/master/20150730-test-cucumber_plugin_reporting

References

https://cucumber.io/docs/reference/jvm

https://github.com/masterthought/cucumber-reporting

http://www.masterthought.net/section/cucumber-reporting

25 thoughts on “How to Cucumber : Test Reporting Plugin with Maven and Java

  1. What is the reason for using the jars externally to maven?
    This would violate lots of corporate “security” / “standards” in the corporate domain (“too big to do things …”)

    • Because some of these jars are not in maven repositories. The plugin developpers have made clear that it will not be the case in the near futur : -(

  2. Thanks…
    I am using in my project a product from ExtentReports by relevantcodes
    Ever tried it?
    It is quite nice…

    • Can you please provide more information on how to integrate cucumber with extent reports

  3. Hello, in the cucumber report in jenkins usually we can see the feature and if you click on a certain feature you will see the sceanrios. Is there a possibility to set futher category before feature in the cucumber reports? Example: two cars BMW ( feature = fix bmw) and audi (feature = fix audi). The reports in jenkins Im looking for are : BMW -> Feature -> scenario ->steps, audi-> feaure -> scenario-> steps

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s