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. Can we apply this same solution to testng with cucumber-jvm. I tried it but didn’t work.

  4. 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