7

How can I reuse Cucumber-JVM Step Definitions in other projects to test some typical web actions. The point is that I've created some java project just with Step Definition Implementations of the typical scenario actions like:

When I follow the link "*some_link*"
Then I should see following content "*some_content*" on page

And I want to reuse these definitions in other projects (include in classpath), just to write their own simple scenarios. But when I run the scenario (as JUnit test), Cucumber cant find Step Definitions. And when I try to extend Step Definitions class it gives me an error, that I can't extent Step Definition class. So, is it possible to reuse Step Definitions and if so than how?

1 Answer 1

12

Well, I've found solution. It appears quite easy.

There is annotation @CucumberOptions which has parameter "glue". Pointing with this parameter to the base package that has the step definitions forces Cucumber to search in that base package. The test runner will look like:

@RunWith(Cucumber.class)
@CucumberOptions(glue = { "com.example.stepdefspackage" })
public class Run{
}
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks for updating this info. I am also using Cucumber and am pretty sure I am going to hit this issue (maybe today)
you'd be better off with "classpath:" to let it search the classpath for it
Notice that you're not able to mention the class name of the step, but only the package. This strategy, although not hard to do, has some drudgery. More about this here: confessionsofanagilecoach.blogspot.com/2017/05/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.