Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cucumber-JVM 6.0.0 added Gherkin Rule support, introduced a message-based report formatter, replaced the HTML formatter, removed the combined cucumber.options setting, and changed test-run defaults. Most notably for upgrades, pending and undefined steps now fail by default. The official release notes describe the move from v5 as relatively straightforward, but recommend upgrading to v5.7.0 first and removing deprecated features before moving to v6.0.0.

What changed in Cucumber-JVM 6.0.0?

Area Change in v6.0.0 What to check
Gherkin Support for the Rule keyword Whether your feature files use rules to group scenarios around a business rule
Reports A message-based formatter was introduced; the HTML formatter was replaced with an improved single-file report Formatter configuration and output paths
Configuration The combined cucumber.options setting was removed Replace it with individual Cucumber properties
Spring Spring test context setup now uses a dedicated configuration class Remove reliance on cucumber.xml or context annotations on step-definition classes
Test outcomes Strict behavior is the default Pending and undefined steps fail the test or build
Console output JUnit and TestNG no longer print progress and summary output by default Add the progress and summary plugins if you want them

The official Cucumber-JVM v6.0.0 release notes describe these changes. They are the notable changes highlighted for this release, not a complete list of every 6.x patch change; consult the project changelog and the release notes for the exact integration versions you use.

Gherkin features can use Rule

Version 6 added support for Gherkin’s Rule keyword. A rule lets a feature describe a business rule and group the examples that illustrate it. This connects Cucumber-JVM feature files with the example-mapping practice referenced in the release notes.

For example, a feature can group scenarios under a rule such as “A customer cannot withdraw more than the available balance.” Review feature files where a rule gives useful context to several related scenarios; this is a syntax capability, not a requirement to restructure every feature.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Message and HTML report output changed

Message formatter

Cucumber-JVM introduced a message-based formatter to address limitations in the previous JSON formatter: it lacked a schema, used very high memory, and did not provide consistent output across Cucumber implementations. The release notes give this configuration example:

@CucumberOptions(plugin = "message:target/cucumber-report.ndjson")

The notes describe message output as intended eventually to replace the existing JSON formatter. That does not mean JSON was already removed or replaced in every use in v6.0.0; keep your current JSON consumers in mind when deciding whether to switch.

HTML formatter

The old HTML formatter was replaced with an improved formatter that emits the report as one file. Use an .html output path, for example:

html:target/cucumber-report.html

Check scripts and CI jobs that collect or publish reports, since they need to point to the actual HTML file produced by your configured formatter.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Replace cucumber.options with individual properties

The single cucumber.options property was removed. The release notes explain that intermediate tools could interpret its combined arguments, making the setting complicated to use reliably. Configure individual properties instead. Their example is:

-Dcucumber.ansi-colors.disabled=true -Dcucumber.filter.tags="not @ignored"

These options disable ANSI colors and filter out scenarios tagged @ignored. Confirm property names and supported options against the Cucumber integration and build setup in your project; do not assume every downstream build integration accepts identical configuration in the same place.

Configure Cucumber Spring with a dedicated class

The preferred Spring setup in v6 uses a dedicated class annotated with @CucumberContextConfiguration and a Spring context annotation, such as @ContextConfiguration or @SpringBootTest. The release notes state that cucumber.xml and context configuration placed on step-definition classes are no longer supported.

As you migrate, locate the Spring test configuration and move the context annotations to a dedicated configuration class. Verify that the class is discovered by your project’s Cucumber Spring setup; the exact context annotation depends on whether the suite uses a conventional Spring test context or Spring Boot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Pending and undefined steps fail by default

Strict behavior became the default in v6.0.0: steps with PENDING or UNDEFINED status cause test or build failure. A suite that previously completed despite unfinished steps may therefore start failing after the upgrade.

Before changing the version, identify intentionally incomplete features and scenarios. The release notes suggest using tags and tag filters to separate work in progress from the scenarios included in a given run. Decide explicitly whether those scenarios belong in the run rather than relying on the prior default behavior.

Restore JUnit and TestNG console output if needed

JUnit and TestNG stopped printing the progress indicator and summary by default. If your developers or build logs rely on those outputs, add the corresponding plugins:

progress
summary

Configure them alongside your other plugins using the mechanism supported by your integration. Build integrations can differ, so validate the result in the runner and CI environment you actually use.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Upgrade checklist for a v5 project

The official Cucumber upgrading guide supplies general semantic-versioning context and directs readers to project changelogs and release notes. For the v6.0.0 changes described here, a practical sequence is:

  1. Prepare the v5 suite. Move to v5.7.0 first, as the v6.0.0 release notes advise, and stop using deprecated features.
  2. Review unfinished steps. Identify pending and undefined steps, then decide which should be implemented and which should be excluded from particular runs using tags and filters.
  3. Replace combined options. Remove cucumber.options and set each option separately, checking the supported property names for your runner.
  4. Update reports. Give the HTML formatter an .html output path. Assess whether consumers of the prior JSON output can move to message output.
  5. Check plugin expectations. Add progress and/or summary if the default JUnit or TestNG console output no longer meets your needs.
  6. Repair Spring context setup. Use a dedicated @CucumberContextConfiguration class with the relevant Spring context annotation; remove reliance on unsupported legacy locations.
  7. Run the actual build integrations. Test the suite through the same runner and CI configuration used by the project, and consult the full changelog for the precise versions being upgraded.

ScreenshotNeo: an unrelated tool for website captures

ScreenshotNeo is a website screenshot API and MCP server for developers; it is not part of Cucumber-JVM and is not needed to upgrade a Cucumber suite. If your test workflow separately needs website screenshots, see ScreenshotNeo for an API that removes consent banners, popups, and chat widgets before capture, and bills only clean shots. Its MCP server offers screenshot tools for AI agents.

For Cucumber-JVM 6.0.0 changes and migration behavior, use the official release note and upgrading guide linked above.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.