我正在尝试升级我们的自动化测试套件的测试能力以接受 JUnit5 测试,当遵循JUnit 平台启动器 API 说明时,我收到错误“如果没有至少一个 TestEngine 就无法创建启动器;考虑将引擎实现 JAR 添加到类路径” . 原因是以下无法找到任何实例TestEngine
:
Iterable<TestEngine> testEngines = ServiceLoader.load(TestEngine.class,ClassLoaderUtils.getDefaultClassLoader());
您对如何确保ServiceLoader
能够找到 的实例有任何建议TestEngine
吗?
我已经包含了org.junit.jupiter.engine
,其中包含JupiterTestEngine
哪些实现TestEngine
,作为必需的插件。我尝试在项目的 .classpath 中添加到 jupiter.engine jar 的直接路径。我已经尝试创建一个具有JupiterTestEngine
相同文件的实例并且它已成功创建,但TestEngine
服务加载器仍然没有找到。
编辑(回应 Somuras 的评论):
这是针对 Eclipse 的,您可以在此处查看代码库:http: //git.eclipse.org/c/platform/eclipse.platform.releng.git/tree/bundles/org.eclipse.test
我在 mainifest 中添加了以下内容:
org.junit.platform.launcher,
org.junit.jupiter.api;bundle-version="5.0.0",
org.junit.platform.engine;bundle-version="1.0.0",
org.junit.platform.commons;bundle-version="1.0.0",
org.junit.jupiter.engine;bundle-version="5.0.0",
org.junit.vintage.engine;bundle-version="4.12.0"
将此添加到.classplath:
<classpathentry exported="true" kind="lib" path="/home/lbullen/Documents/eclipse/plugins/org.junit.jupiter.engine_5.0.0.v20170910-2246.jar"/>
将 org.junit.jupiter.engine jar 添加到 lib 文件夹,然后将其添加到二进制构建中。(我正在寻求解决方案)
我正在尝试让教程代码在http://git.eclipse.org/c/platform/eclipse.platform.releng.git/tree/bundles/org.eclipse.test/src的编辑版本中工作/org/eclipse/test/EclipseTestRunner.java 删除了所有旧的junit代码。