Я пытаюсь обновить возможности тестирования нашего набора автоматизированных тестов, чтобы принимать тесты JUnit5 и следовать Инструкции API JUnit Platform Launcher Я получаю сообщение об ошибке "Невозможно создать Launcher без хотя бы одного TestEngine; рассмотрите возможность добавления JAR-файла реализации механизма в путь к классам". Причина в том, что следующее не может найти экземпляры TestEngine
:
Iterable<TestEngine> testEngines = ServiceLoader.load(TestEngine.class,ClassLoaderUtils.getDefaultClassLoader());
Есть ли у вас какие-либо предложения о том, как убедиться, что ServiceLoader
может найти экземпляр TestEngine
?
Я включил org.junit.jupiter.engine
, который содержит JupiterTestEngine
, реализующий TestEngine
, в качестве обязательного плагина. Я попытался добавить прямой путь к банке jupiter.engine в .classpath проекта. Я попытался создать экземпляр JupiterTestEngine
с тем же файлом, и он был успешно создан, но загрузчик службы все еще не нашел TestEngine
.
РЕДАКТИРОВАТЬ (в ответ на комментарий Сормураса):
Это для 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"
Добавил это в .classplat:
<classpathentry exported="true" kind="lib" path="/home/lbullen/Documents/eclipse/plugins/org.junit.jupiter.engine_5.0.0.v20170910-2246.jar"/>
Добавил jar org.junit.jupiter.engine в папку lib, а затем добавил его для включения в бинарную сборку. (Я ищу решение)
И я пытаюсь заставить код учебника работать в отредактированной версии http://git.eclipse.org/c/platform/eclipse.platform.releng.git/tree/bundles/org.eclipse.test/src/org/eclipse/test/EclipseTestRunner.java со всем удаленным старым кодом junit.