下面列出了怎么用org.junit.jupiter.engine.JupiterTestEngine的API类实例代码及写法,或者点击链接到github查看源代码。
public static void execute(Class<?> testClass) throws Exception {
try {
JupiterTestEngine engine = new JupiterTestEngine();
TestClassEngineDiscoveryRequest discoveryRequest = new TestClassEngineDiscoveryRequest(testClass);
TestDescriptor testDescriptor = engine.discover(discoveryRequest, UniqueId.forEngine("foo-bar"));
EngineExecutionListener listener = new NoOpEngineExecutionListener();
ConfigurationParameters parameters = new NoConfigurationParameters();
engine.execute(new ExecutionRequest(testDescriptor, listener, parameters));
} catch (UndeclaredThrowableException e) {
Throwable cause = getFirstNonUndeclaredThrowableCause(e);
if (cause instanceof Error) {
throw ( Error ) cause;
} else if (cause instanceof RuntimeException) {
throw ( RuntimeException ) cause;
} else if (cause instanceof Exception) {
throw ( Exception ) cause;
} else {
throw e;
}
}
}
public String executeTests(List<Class<?>> testClasses) {
LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder.request()
.selectors(
testClasses.stream().map(DiscoverySelectors::selectClass).collect(Collectors.toList())
)
.build();
var launcherConfig = LauncherConfig.builder()
.addTestEngines(new JupiterTestEngine())
.build();
Launcher launcher = LauncherFactory.create(launcherConfig);
// Create log listener:
var logLines = new ArrayList<String>();
var logListener = LoggingListener.forBiConsumer((t, m) -> log(logLines, m.get(), t));
// Create a summary listener:
var summaryListener = new SummaryGeneratingListener();
launcher.registerTestExecutionListeners(logListener, summaryListener);
// Execute request
launcher.execute(discoveryRequest);
var report = summaryListener.getSummary();
return createJsonTestReport(report, logLines);
}
public JupiterTestEngineForTests(Containers containers, JupiterExecutionListener eventRecorder) {
this.containers = containers;
this.eventRecorder = eventRecorder;
this.engine = new JupiterTestEngine();
}