【发布时间】:2022-01-20 23:14:23
【问题描述】:
我正在编写一个自定义工具,它使用 JUnit 5 以编程方式执行一组测试类。
在执行这些测试时,有没有办法为执行定义类路径? (我有一组正在提供的 jar,以及一些我需要添加到类路径中的已编译生产和测试代码)。
我大致有以下代码:
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
.selectors(selectPackage(basePackage))
.filters(includeClassNamePatterns(classNamePatterns))
.build();
SummaryGeneratingListener listener = new SummaryGeneratingListener();
Launcher launcher = LauncherFactory.create();
launcher.registerTestExecutionListeners(listener);
TestPlan testPlan = launcher.discover(request);
// launcher.execute(request);
launcher.execute(testPlan);
TestExecutionSummary summary = listener.getSummary();
summary.printTo(new PrintWriter(System.out));
summary.printFailuresTo(new PrintWriter(System.out));
这样做的正确方法是什么?
【问题讨论】:
-
这取决于您如何构建自定义工具。如果该工具是一个 shell 脚本或者可以启动一个 shell 脚本,你可以编译然后运行这个带有附加类路径的测试类。
-
@ShankarPS:我希望以编程方式执行此操作,以便相应的类路径仅对在
ClassLoader中运行的测试有效,并且不会影响可能正在运行的其他测试的执行同时使用不同的类路径。