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

24 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

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