如何解决junit 5 - 无法一次运行多个发现
我的团队开发了一个用于 junit 测试的自定义运行器。 现在我正在努力提高它的性能并尝试同时创建几个测试计划。 老实说,在这一步我什至不打算执行它。我唯一需要的是获取完整的 TestIdentifiers 列表,以便在 UI 中进一步过滤。
在同一个线程上工作时一切正常。
private CompletableFuture<List<TestCasesDetails>> discover(boolean mode) {
return CompletableFuture.supplyAsync(() -> {
TestPlan testPlan = testPlanGenerator.createTestPlan(
jardiscoverService.discover(mode)
);
try {
return testCaseMapper.getMappedTestCasesList(mode,testPlan);
} catch (ClassNotFoundException e) {
throw new NotFoundException("Wrong tag or tests not found");
}
});
}
createTestPlan 在哪里:
public TestPlan createTestPlan(LauncherdiscoveryRequest request) {
Launcher launcher = LauncherFactory.create ();
return launcher.discover (request);
}
和 jardiscoverService.discover
触发了一些业务逻辑,但最终构建了 LauncherdiscoveryRequest:
LauncherdiscoveryRequestBuilder.request()
.selectors(discoverySelectorList)
.filters(
excludeEngines("..."),executionMode ? includeTags("...") : excludeTags("...")
)
.filters(filterTags)
.configurationParameters(...)
.build();
运行时得到:
java.nio.file.FileSystemAlreadyExistsException: null
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:104) ~[jdk.zipfs:na]
at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:335) ~[na:na]
at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:284) ~[na:na]
at org.junit.platform.commons.util.CloseablePath.createForJarFileSystem(CloseablePath.java:57) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.commons.util.CloseablePath.create(CloseablePath.java:46) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.commons.util.ClasspathScanner.findClassesForUri(ClasspathScanner.java:102) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.commons.util.ClasspathScanner.lambda$findClassesForUris$0(ClasspathScanner.java:94) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndcopyInto(AbstractPipeline.java:474) ~[na:na]
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na]
at org.junit.platform.commons.util.ClasspathScanner.findClassesForUris(ClasspathScanner.java:97) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.commons.util.ClasspathScanner.scanForClassesInPackage(ClasspathScanner.java:78) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.commons.util.ReflectionUtils.findAllClassesInPackage(ReflectionUtils.java:981) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.commons.util.ReflectionUtils.findAllClassesInPackage(ReflectionUtils.java:974) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.commons.support.ReflectionSupport.findAllClassesInPackage(ReflectionSupport.java:138) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.engine.support.discovery.ClassContainerSelectorResolver.resolve(ClassContainerSelectorResolver.java:53) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.engine.support.discovery.EnginediscoveryRequestResolution.lambda$resolve$2(EnginediscoveryRequestResolution.java:155) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndcopyInto(AbstractPipeline.java:474) ~[na:na]
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543) ~[na:na]
at org.junit.platform.engine.support.discovery.EnginediscoveryRequestResolution.resolve(EnginediscoveryRequestResolution.java:185) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.engine.support.discovery.EnginediscoveryRequestResolution.resolve(EnginediscoveryRequestResolution.java:125) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.engine.support.discovery.EnginediscoveryRequestResolution.resolveCompletely(EnginediscoveryRequestResolution.java:91) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.engine.support.discovery.EnginediscoveryRequestResolution.run(EnginediscoveryRequestResolution.java:82) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.engine.support.discovery.EnginediscoveryRequestResolver.resolve(EnginediscoveryRequestResolver.java:113) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.jupiter.engine.discovery.discoverySelectorResolver.resolveSelectors(discoverySelectorResolver.java:45) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:69) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.launcher.core.Enginediscoveryorchestrator.discoverEngineRoot(Enginediscoveryorchestrator.java:96) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.launcher.core.Enginediscoveryorchestrator.discover(Enginediscoveryorchestrator.java:81) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:83) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:58) ~[junit-platform-console-standalone-1.7.0-M1.jar:1.7.0-M1]
@user:6327046 marc Philipp,很高兴收到您或junit 团队成员的来信:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。