Выполнение тестов JUnit на подключаемых модулях eclipse-test от maven - PullRequest
0 голосов
/ 05 марта 2019

У меня есть многомодульный проект RCP Eclipse.Я хочу запустить тесты JUnit от Maven.Модули, имеющие тесты JUnit, являются подключаемыми модулями eclipse.Я попытался запустить их, используя Tycho Surefire Plugin, добавив в файл pom следующее:

    <packaging>eclipse-test-plugin</packaging>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
  <build>
    <sourceDirectory>src/test</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>0.24.0</version>
        <configuration>
          <includes>
              <include>**/*Test.java</include>
          </includes>
          <useUIHarness>false</useUIHarness>
          <providerHint>junit4</providerHint>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

При mvn test тесты не запускаются.Только классы скомпилированы.С mvn verify я получаю следующую ошибку:

------------------------------------------------------- ИСПЫТАНИЯ ------------------------------------------------------- Произошла ошибка.См. Файл журнала E: \ Git \ EF8_Toolcenter_repository_custom \ de.audi.eftc.platform.contact \ target \ work \ data.metadata.log.

[ОШИБКА] Не удалось выполнить цель org.eclipse.tycho:tycho-surefire-plugin: 0.24.0: test (default-test) в проекте xxxx.contact: при запуске среды выполнения теста произошла непредвиденная ошибка (код возврата 13).Смотрите журнал для деталей.-> [Помощь 1]

Журнал содержит:

! СЕССИЯ 2019-03-05 11: 31: 23.457 ----------------------------------------------- eclipse.buildId = неизвестно java.version = 1.8.0_191 java.vendor = Константы BootLoader корпорации Oracle: OS = win32, ARCH = x86_64, WS = win32, NL = en_US Аргументы платформы: -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties xxxx \ target \ surefire.properties Command-Строковые аргументы: -data xxxx \ target \ work \ data -application org.eclipse.tycho.surefire.osgibooter.headlesstest -testproperties xxxx \ target \ surefire.properties

! ENTRY org.eclipse.tycho.surefire.junit4 2 0 2019-03-05 11: 31: 24.892! MESSAGE Не удалось разрешить модуль: org.eclipse.tycho.surefire.junit4 [134] Неразрешенное требование: Import-Package: junit.framework;version = "3.0.0". Нерешенное требование: Import-Package: junit.framework;version = "3.0.0"

! ENTRY org.eclipse.osgi 4 0 2019-03-05 11: 31: 24.893! MESSAGE Ошибка приложения! STACK 1 org.apache.maven.surefire.util.SurefireReflectionException: java.lang.ClassNotFoundException: org.apache.maven.surefire.junit4.JUnit4Provider at org.apache.maven.surefire.util.ReflectionUtils.loadClass (ReflectionUtils.java:251) в org.apache.maven.surefire.util.ReflectionUtils.instantiateOneArg (ReflectionUtils.java:128) в org.apache.maven.surefire.booter.SurefireReflector.instantiateProvider (SurefireReflector.java:235) в org.apache.maven.surefire.booter.actj.Fider: ReiderFider113) по адресу org.apache.maven.surefire.booter.ProviderFactory.invokeProvider (ProviderFactory.java:78) по адресу org.eclipse.tycho.surefire.osgibooter.OsgiSurefireBooter.run (OsgiSurefireBooter.java.ecip. org.seg at91).surefire.osgibooter.HeadlessTestApplication.run (HeadlessTestApplication.java:21) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Methol.jpg.app.EclipseAppContainer.callMethodWithException (EclipseAppContainer.java:587) в org.eclipse.equinox.internal.app.EclipseAppHandle.run (EclipseAppHandle.java:198).(EclipseAppLauncher.java:134) в org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start (EclipseAppLauncher.java:104) в org.eclipse.core.runtime.adaptor.java.terse (eclipse).sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)в java.lang.reflect.Method.invoke (Method.java:498) в org.eclipse.equinox.launcher.Main.invokeFramework (Main.java:656) в org.eclipse.equinox.launcher.Main.basicRun (Main.java: 592) в org.eclipse.equinox.launcher.Main.run (Main.java:1498) в org.eclipse.equinox.launcher.Main.main (Main.java:1471) Причина: java.lang.ClassNotFoundException: org.apache.maven.surefire.junit4.JUnit4Provider at org.eclipse.tycho.surefire.osgibooter.CombinedClassLoader.findClass (CombinedClassLoader.java:37) в java.lang.ClassjoL.aderjava.lang.ClassLoader.loadClass (ClassLoader.java:357) в org.apache.maven.surefire.util.ReflectionUtils.loadClass (ReflectionUtils.java:243) ... еще 24

Чтоя делаю не так?Заранее спасибо!

1 Ответ

0 голосов
/ 05 марта 2019

Я понял, в чем проблема.Мне пришлось поставить в зависимости MANIFEST.MF также org.junit.

...