我正在尝试升级我们的自动化测试套件的测试能力以接受JUnit5测试,并在关注JUnit Platform Launcher API instructions时出现错误"如果没有至少一个TestEngine,则无法创建启动器;考虑将引擎实现JAR添加到类路径" 。原因是以下内容无法找到TestEngine
:
Iterable<TestEngine> testEngines = ServiceLoader.load(TestEngine.class,ClassLoaderUtils.getDefaultClassLoader());
对于如何确保ServiceLoader
能够找到TestEngine
的实例,您有任何建议吗?
我已将包含org.junit.jupiter.engine
JupiterTestEngine
的{{1}}包含在内,作为必需的插件。我尝试在项目的.classpath中添加一个直接路径到jupiter.engine jar。我尝试在同一个文件中创建TestEngine
witihn的实例,并且已成功创建,但服务加载程序仍未找到JupiterTestEngine
。
编辑(回应Sormuras的评论):
这适用于Eclipse,您可以在此处查看代码库: http://git.eclipse.org/c/platform/eclipse.platform.releng.git/tree/bundles/org.eclipse.test
我在mainifest中添加了以下内容:
TestEngine
将此添加到.classplath:
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"
将org.junit.jupiter.engine jar添加到lib文件夹,然后添加它以包含在二进制构建中。 (我正在寻找解决方案)
我试图让Tutorial代码在http://git.eclipse.org/c/platform/eclipse.platform.releng.git/tree/bundles/org.eclipse.test/src/org/eclipse/test/EclipseTestRunner.java的已编辑版本中运行,并删除所有旧的junit代码。