Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Cucumber for the JVM (successor of Cuke4Duke)

Build Status

Cucumber-JVM is a pure Java implementation of Cucumber that supports the most popular programming languages for the JVM.

You can run it with the tool of your choice.

Cucumber-JVM also integrates with all the popular Dependency Injection containers.


Start Here. This page also links to examples. Look here for API docs.

Hello World

Check out the simple Hello World example.

Downloading / Installation


Bugs and Feature requests

You can register bugs and feature requests in the Github Issue Tracker.

You're most likely going to paste code and output, so familiarise yourself with Github Flavored Markdown to make sure it remains readable.

At the very least - use triple backticks:

// Why doesn't this work?
@Given("I have 3 cukes in my (.*)")
public void some_cukes(int howMany, String what) {
    // HALP!

Please consider including the following information if you register a ticket:

  • What cucumber-jvm version you're using
  • What modules you're using (cucumber-java, cucumber-spring, cucumber-groovy etc)
  • What command you ran
  • What output you saw
  • How it can be reproduced

How soon will my ticket be fixed?

The best way to have a bug fixed or feature request implemented is to fork the cucumber-jvm repo and send a pull request. If the pull request has good tests and follows the coding conventions (see below) it has a good chance of making it into the next release.

If you don't fix the bug yourself (or pay someone to do it for you), the bug might never get fixed. If it is a serious bug, other people than you might care enough to provide a fix.

In other words, there is no guarantee that a bug or feature request gets fixed. Tickets that are more than 6 months old are likely to be closed to keep the backlog manageable.

Contributing fixes

See Contributing as well as (

Coming from Cuke4Duke?

See Migration from Cuke4Duke

Something went wrong with that request. Please try again.