问题
I am attempting to upgrade the testing abilities of our automated testing suite to accept JUnit5 tests and when following The JUnit Platform Launcher API instructions I get the error "Cannot create Launcher without at least one TestEngine; consider adding an engine implementation JAR to the classpath". The cause is that the following is unable to find any instances of TestEngine
:
Iterable<TestEngine> testEngines = ServiceLoader.load(TestEngine.class,ClassLoaderUtils.getDefaultClassLoader());
Do you have any suggestions on how to ensure that the ServiceLoader
is able to find an instance of TestEngine
?
I have included org.junit.jupiter.engine
, which contains JupiterTestEngine
which implements TestEngine
, as a required plugin. I have tried adding a direct path to the jupiter.engine jar in the project's .classpath. I have tried creating an instance of JupiterTestEngine
witihn the same file and it is created successfully, but still no TestEngine
s found by the service loader.
EDIT (In response to Sormuras's comment):
This is for Eclipse and you can see the code base here: http://git.eclipse.org/c/platform/eclipse.platform.releng.git/tree/bundles/org.eclipse.test
I added the following to the 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"
Added this to the .classplath:
<classpathentry exported="true" kind="lib" path="/home/lbullen/Documents/eclipse/plugins/org.junit.jupiter.engine_5.0.0.v20170910-2246.jar"/>
Added the org.junit.jupiter.engine jar to the lib folder then added it to be included in the binary build. (I'm streatching for a solution)
And I'm trying to get the Tutorial code to work in an edited version of http://git.eclipse.org/c/platform/eclipse.platform.releng.git/tree/bundles/org.eclipse.test/src/org/eclipse/test/EclipseTestRunner.java with all the old junit code removed.
来源:https://stackoverflow.com/questions/48672051/junit5-platform-launcher-api-cannot-create-launcher-without-at-least-one-teste