Как построить тесты Junit5 с Maven Tycho - PullRequest
0 голосов
/ 02 июля 2018

Я хочу представить Junit5 Jupiter старому фрагменту теста RCP. Мы создаем наши функции RCP с Maven Tycho. Начиная с версии 1.2, Tycho должен поддерживать тесты JUnit5.

Все, что я получаю, это (когда я бегу mvn clean install)

org.apache.maven.surefire.util.SurefireReflectionException: java.util.ServiceConfigurationError: org.junit.platform.engine.TestEngine: Provider org.junit.jupiter.engine.JupiterTestEngine not a subtype
    at org.apache.maven.surefire.util.ReflectionUtils.instantiateOneArg(ReflectionUtils.java:135)
    at org.apache.maven.surefire.booter.SurefireReflector.instantiateProvider(SurefireReflector.java:276)
    at org.apache.maven.surefire.booter.ProviderFactory.createProvider(ProviderFactory.java:113)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:81)
    at org.eclipse.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:107)
    at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.runTests(AbstractUITestApplication.java:44)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Testable.lambda$0(E4Testable.java:73)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.ServiceConfigurationError: org.junit.platform.engine.TestEngine: Provider org.junit.jupiter.engine.JupiterTestEngine not a subtype
    at java.util.ServiceLoader.fail(ServiceLoader.java:239)
    at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
    at org.junit.platform.launcher.core.DefaultLauncher.validateUniqueIds(DefaultLauncher.java:63)
    at org.junit.platform.launcher.core.DefaultLauncher.<init>(DefaultLauncher.java:58)
    at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:59)
    at org.junit.platform.surefire.provider.JUnitPlatformProvider.<init>(JUnitPlatformProvider.java:85)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.apache.maven.surefire.util.ReflectionUtils.instantiateOneArg(ReflectionUtils.java:131)
    ... 7 more

Это мои зависимости от Manifest.MF:

 org.junit.jupiter.api;bundle-version="5.0.0",
 org.junit.jupiter.engine;bundle-version="5.0.0",
 org.junit.jupiter.params;bundle-version="5.0.0",
 org.junit.jupiter.migrationsupport;bundle-version="5.0.0",
 org.junit.vintage.engine;bundle-version="4.12.0",
 org.hamcrest.core;bundle-version="1.3.0",
 org.junit;bundle-version="4.12.0",
 org.opentest4j,
 org.junit.platform.commons;bundle-version="1.0.0",
 org.junit.platform.engine;bundle-version="1.0.0",
 org.junit.platform.launcher;bundle-version="1.0.0",
 org.junit.platform.runner;bundle-version="1.0.0",
 org.junit.platform.suite.api;bundle-version="1.0.0"

Я добавил эти зависимости в основном методом проб и ошибок. Я знаю, что мне нужны эти комплекты платформ, если я тоже хочу запускать тесты J5 в Eclipse. В Eclipse и старый, и новый тесты работают нормально.

Существует зависимость junit 4.12, потому что в противном случае все эти старые модульные тесты больше не будут компилироваться.

Есть ли пример того, как запустить тесты Junit5 с использованием Tycho? Может быть, я прибегаю к помощи не тех вещей;)

1 Ответ

0 голосов
/ 03 июля 2018

См. https://wiki.eclipse.org/Tycho/How_Tos/JUnit5

Похоже, дело не в том, чтобы добавить j5 как зависимости, а в import-package.

Это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...