Test Launcher API

One of the goals of JUnit 5 is to make the interface between JUnit and its programmatic clients (build tools and IDEs) more powerful and stable. To that aim, the Test Launcher API has been implemented. This API is used by IDEs and build tools for discovering, filtering, and executing tests.

Looking closer at the details of this API, we find the class LauncherDiscoveryRequest, which exposes a fluent API to select the location of tests (for example classes, methods, or packages). This group of tests can be filtered, for example, using a match pattern:

import static org.junit.platform.engine.discovery.ClassNameFilter.includeClassNamePatterns;
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectPackage;

import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.launcher.TestPlan;
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
import org.junit.platform.launcher.core.LauncherFactory;

// Discover and filter tests
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder
.request()
.selectors(selectPackage("io.github.bonigarcia"),
selectClass(MyTest.class))
.filters(includeClassNamePatterns(".*Test")).build();
Launcher launcher = LauncherFactory.create();
TestPlan plan = launcher.discover(request);

After that, the resulting test suite can be executed using the class TestExecutionListener. This class can be also used to get feedback and receive events:

import org.junit.platform.launcher.TestExecutionListener;
import org.junit.platform.launcher.listeners.SummaryGeneratingListener;

// Executing tests
TestExecutionListener listener = new SummaryGeneratingListener();
launcher.registerTestExecutionListeners(listener);
launcher.execute(request);
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.93.141