Как настроить проект Java-модуля на основе maven для запуска модульного теста в eclipse? - PullRequest
0 голосов
/ 19 января 2019

Я создал «Проект Maven» (простой проект) в eclipse и добавил для него класс и модульные тесты.Тесты работают нормально.

Однако, как только я добавляю "module-info.java" в "src / main / java", модульный тест не запускается:

Error: Could not find or load main class workspace2.unittest.target.test-classes
Caused by: java.lang.ClassNotFoundException: workspace2.unittest.target.test-classes

Информация: "workspace2" - это имя моей рабочей области, а "unittest" - имя проекта.

Все работает нормально, если я запускаю maven через консоль (та же версия maven и java).

Setдо:- затмение: 2018-12 (4.10.0)- maven: 3.6.0 (настроено в Eclipse)- java: oracle-jdk-9.0.4 / openjdk-11.0.2_linux-x64

У кого-нибудь еще были такие проблемы?

Я пробовал это с JUnit4 (4.12 и 4.13-бета)-1) и JUnit5 (5.3.2).

ОБНОВЛЕНИЕ Вот ссылка на сжатый пример проекта: https://www.file -upload.net / download-13475608 / unittest.zip.html

pom:

<modelVersion>4.0.0</modelVersion>
<groupId>de.test</groupId>
<artifactId>unittest</artifactId>
<version>0.0.1-SNAPSHOT</version>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

module-info.java:

module de.unittest {
}

класс:

package unittest;

public class Demo {

  public int calculate(int a, int b) {
  return a + b;
  }
}

тест:

package unittest;

import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;

public class DemoTest {

  private Demo demo;

  @Before
  public void setUp() throws Exception {
    demo = new Demo();
  }

  @Test
  public void testCalculate() throws Exception {
    int calculated = demo.calculate(1, 2);
    assertEquals(3, calculated);
  }

}

1 Ответ

0 голосов
/ 21 января 2019

Я нашел основную причину. Ошибка была вызвана пустым пространством внутри пути рабочей области. : / После создания нового рабочего пространства (без пробелов внутри пути) тесты работают нормально.

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