Class LauncherFactory

java.lang.Object
org.junit.platform.launcher.core.LauncherFactory

@API(status=STABLE, since="1.0") public class LauncherFactory extends Object
Factory for creating Launcher instances by invoking create() or create(LauncherConfig).

By default, test engines are discovered at runtime using the ServiceLoader mechanism. For that purpose, a text file named META-INF/services/org.junit.platform.engine.TestEngine has to be added to the engine's JAR file in which the fully qualified name of the implementation class of the TestEngine interface is declared.

By default, test execution listeners are discovered at runtime via the ServiceLoader mechanism and are automatically registered with the Launcher created by this factory. Users may register additional listeners using the Launcher.registerTestExecutionListeners(TestExecutionListener...) method on the created launcher instance.

For full control over automatic registration and programmatic registration of test engines and listeners, supply an instance of LauncherConfig to create(LauncherConfig).

Since:
1.0
See Also:
  • Field Details

  • Constructor Details

    • LauncherFactory

      private LauncherFactory()
  • Method Details

    • openSession

      @API(status=EXPERIMENTAL, since="1.8") public static LauncherSession openSession() throws org.junit.platform.commons.PreconditionViolationException
      Factory method for opening a new LauncherSession using the default LauncherConfig.
      Throws:
      org.junit.platform.commons.PreconditionViolationException - if no test engines are detected
      Since:
      1.8
      See Also:
    • openSession

      @API(status=EXPERIMENTAL, since="1.8") public static LauncherSession openSession(LauncherConfig config) throws org.junit.platform.commons.PreconditionViolationException
      Factory method for opening a new LauncherSession using the supplied LauncherConfig.
      Parameters:
      config - the configuration for the session and the launcher; never null
      Throws:
      org.junit.platform.commons.PreconditionViolationException - if the supplied configuration is null, or if no test engines are detected
      Since:
      1.8
      See Also:
    • create

      public static Launcher create() throws org.junit.platform.commons.PreconditionViolationException
      Factory method for creating a new Launcher using the default LauncherConfig.
      Throws:
      org.junit.platform.commons.PreconditionViolationException - if no test engines are detected
      See Also:
    • create

      @API(status=EXPERIMENTAL, since="1.3") public static Launcher create(LauncherConfig config) throws org.junit.platform.commons.PreconditionViolationException
      Factory method for creating a new Launcher using the supplied LauncherConfig.
      Parameters:
      config - the configuration for the launcher; never null
      Throws:
      org.junit.platform.commons.PreconditionViolationException - if the supplied configuration is null, or if no test engines are detected registered
      Since:
      1.3
      See Also:
    • createDefaultLauncher

      private static DefaultLauncher createDefaultLauncher(LauncherConfig config)
    • collectTestEngines

      private static Set<TestEngine> collectTestEngines(LauncherConfig config)
    • createLauncherSessionListener

      private static LauncherSessionListener createLauncherSessionListener(LauncherConfig config)
    • collectPostDiscoveryFilters

      private static List<PostDiscoveryFilter> collectPostDiscoveryFilters(LauncherConfig config)
    • registerLauncherDiscoveryListeners

      private static void registerLauncherDiscoveryListeners(LauncherConfig config, Launcher launcher)
    • registerTestExecutionListeners

      private static void registerTestExecutionListeners(LauncherConfig config, Launcher launcher)
    • loadAndFilterTestExecutionListeners

      private static Stream<TestExecutionListener> loadAndFilterTestExecutionListeners()