### Question:
ApplicationRunner { @SneakyThrows public ConfigurableApplicationContext run() { System.setProperty("plugins.dir", findPluginsDir().getAbsolutePath()); System.setProperty("plugins.pathMatcher", "*/build/libs/*.jar"); var tempFile = Files.createTempFile("app", ".jar"); tempFile.toFile().deleteOnExit(); try (var appJarStream = getClass().getClassLoader().getResourceAsStream("app-boot.jar")) { Files.copy(appJarStream, tempFile, StandardCopyOption.REPLACE_EXISTING); } var launcher = new JarLauncher(new JarFileArchive(tempFile.toFile(), tempFile.toUri().toURL())) { ClassLoader createClassLoader() throws Exception { return super.createClassLoader(getClassPathArchives()); } @Override protected ClassLoader createClassLoader(URL[] urls) throws Exception { var systemClassLoader = ClassLoader.getSystemClassLoader(); return new LaunchedURLClassLoader(urls, systemClassLoader.getParent()) { @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { var classFile = findResource(name.replace(".", "/") + ".class"); if (classFile != null) { log.debug("Loading class '{}' from the system ClassLoader instead", name); return systemClassLoader.loadClass(name); } return super.loadClass(name, resolve); } }; } }; var currentClassLoader = Thread.currentThread().getContextClassLoader(); var oldProperties = new Properties(System.getProperties()); try { var appClassLoader = launcher.createClassLoader(); Thread.currentThread().setContextClassLoader(appClassLoader); System.getProperties().putAll(properties); var applicationClass = appClassLoader.loadClass("com.github.bsideup.liiklus.Application"); var createSpringApplicationMethod = applicationClass.getDeclaredMethod( "start", String[].class, ApplicationContextInitializer[].class ); return (ConfigurableApplicationContext) createSpringApplicationMethod.invoke( null, new String[0], new ApplicationContextInitializer[0] ); } finally { System.setProperties(oldProperties); Thread.currentThread().setContextClassLoader(currentClassLoader); } } ApplicationRunner(@NonNull String recordsStorageType, @NonNull String positionsStorageType); ApplicationRunner withProperty(String key, Object value); @SneakyThrows ConfigurableApplicationContext run(); File findPluginsDir();  }### Answer:
@Test void shouldStart() { var context = new ApplicationRunner("MEMORY", "MEMORY").run(); assertThat(context).isNotNull(); }