'@CucumberOptions in cucumber-junit-platform-engine

I'm trying to migrate my cucumber tests from cucumber-junit to cucumber-junit-platform-engine to be able to use new platform features. How do I redefine my runner to use old @CucumberOptions. I'm investigating the issue but can't seem to find the proper way yet.

Before I used such options:

@CucumberOptions(
  plugin = ...,
  features = ...,
  tags = ...,
  glue = ...
)

Is there a straighforward way to migrate it to platform-engine?



Solution 1:[1]

Until Junit5/#2416 is merged there is no 1-to-1 replacement. However if you only have a single class annotated with @CucumberOptions adding properties to junit-platform.properties should suffice.

EDIT: #2416 was merged and released. You can now use suites to run cucumber with different configurations. See cucumber-junit-platform docs.

Solution 2:[2]

I have been looking into JUnit5 and Cucumber 7.0 the past few days, I am only adding to your own answer.. documentation is scarce, this link has been a bless and docs

you dont have to use @IncludeEngines also notice how packages are referenced

@Suite
@SelectClasspathResource("com/rmdaw/cucumber/features")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.rmdaw.repository")

last thing you can place configuration into test/java/resources/junit-platform.properties inside you can have something like this:

cucumber.publish.quiet=true
cucumber.glue=com.rmdaw.cucumber
cucumber.plugin=pretty,\
            html:target/SystemTestReports/report.html,\
            json:target/SystemTestReports/report.json,\
            junit:target/SystemTestReports/junit.xml\ 

Solution 3:[3]

It looks like @Suite from junit-platform-engine with proper engine should be used instead of cucumber annotations.

@Suite
@IncludeEngines("cucumber")
@SelectClasspathResource("features")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.example")
public class RunCucumberTest {
}

Kudos to @spmason answer.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 RMDaw
Solution 3 makozaki