GitHunt
MP

mpkorstanje/junit-platform-suite-demo

Demo of junit-platform-suite and cucumber

JUnit Platform Suite Demo

Usage:

  • git clone https://github.com/mpkorstanje/junit-platform-suite-demo
  • Run RunSuiteTest in IDEA

Why?

The junit-platform-suite-engine is a test engine that uses the JUnit Platform
Launcher to run suites of tests. This can be useful. For example when running
Cucumber.

Where previously you would have to create and run the launcher manually:

public class RunCucumberTest {

    public static void main(String[] args) {
        Launcher launcher = LauncherFactory.create();

        LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
                .filters(EngineFilter.includeEngines("cucumber"))
                .selectors(DiscoverySelectors.selectClasspathResource("io/cucumber/skeleton"))
                .configurationParameter(GLUE_PROPERTY_NAME, "io.cucumber.skeleton")
                .build();

        launcher.execute(request);
    }
}

By using annotations the JUnit platform will execute the test for you:

@Suite
@IncludeEngines("cucumber")
@SelectClasspathResource("io/cucumber/skeleton")
@Configuration(key = GLUE_PROPERTY_NAME, value = "io.cucumber.skeleton")
public class RunCucumberTest {
}

Suites also work with multiple engines at the same time:

@Suite
@SelectClasses(JupiterTest.class) // This selector is picked up by Jupiter
@SelectClasspathResource("io/cucumber/skeleton") // This selector is picked up by Cucumber
public class RunSuiteTest {

}

Languages

Java92.7%Gherkin7.3%

Contributors

MIT License
Created September 19, 2020
Updated August 30, 2025
mpkorstanje/junit-platform-suite-demo | GitHunt