To get started with Cucumber, you need to add the required version of Cucumber JUnit to your project:
<dependencies> [...] <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency> [...] </dependencies>
Then create an empty class that uses the Cucumber JUnit runner.
package org.sample.cucumber; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith( Cucumber.class ) public class RunCucumberIT { [...] }
This will execute all scenarios in the package of the runner. By default a glue code is assumed to be in the same package. The @CucumberOptions annotation can be used to provide additional configuration of Cucumber.
Note that in this example the BDD scenarios are executed by the Failsafe Plugin in the integration-test phase of the build lifecycle. The Failsafe Plugin can be invoked by calling the verify phase.
mvn verify
The Cucumber supports JUnit annotations @ClassRule, @BeforeClass and @AfterClass. These are invoked around the suite of features. Using these is not recommended as it limits the portability between different runners. Instead it is recommended to use Cucumbers `Before` and `After` hooks to setup scaffolding.