Eclipse Не знайдено тестів за допомогою JUnit 5, спричинених NoClassDefFoundError для LauncherFactory


95

Проблема

Кожного разу, коли я запускаю свої тести JUnit проектів (використовуючи JUnit 5 з Java 9 та Eclipse Oxygen 1.a), я стикаюся з проблемою, що eclipse не може знайти жодного тесту.

Опис

У конфігурації запуску eclipse навіть не може знайти метод, котрий коментується @Test, а замість цього показує лише " (усі методи) ". Наступне зображення, сподіваємось, дає кращі уявлення про моє налаштування:

https://imgur.com/a/FTe9c

Вихід консолі:

java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory
    at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.base/java.lang.Class.newInstance(Unknown Source)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 11 more

Те, що я намагався досі

Я вже пробував

  • щоб видалити тестову папку зі шляху побудови та додати її знову.
  • щоб розпочати тест з наведенням курсора на метод, позначений @Test, а потім натисніть "Запустити як тест JUnit".
  • видаліть JUnit із Buildpath і додайте його знову
  • перезапустити затемнення
  • Я також перемістив цілий проект проекту з однієї машини на іншу машину і спробував це з передбаченою там установкою eclipse
  • перейменувати метод тестування.
  • для повторного введення анотації @Test

Деякі з цих кроків можна знайти тут , але врешті-решт проблема залишилася.


Але чи намагалися ви з’ясувати різницю, як зазначено у відповіді на це - stackoverflow.com/questions/34413/… ?
Naman,

Відповіді:


20

Ви зіткнулися з помилкою Eclipse 525948, яку вже виправили, і яка буде опублікована в майбутньому випуску Oxygen.3 (4.7.3), 21 березня 2018 року.

Як обхідне рішення, помістіть свій тестовий код в окремий проект і додайте проект, що тестується, до шляху модуля, але не додайте a module-info.javaдо свого тестового проекту. З іменами вашого проекту, класу та модуля це повинно виглядати приблизно так:

введіть тут опис зображення

Дивіться також моє відео, яке показує дію Java 9 та JUnit 5 у Eclipse Oxygen.1a


1
@ nullpointer Я маю на увазі створити новий проект Java, який не є модульним (не має module-info.java). У Eclipse проект Java має одну вихідну папку, і тому вона може містити лише одну або жодну module-info.java. Але ви можете додавати модулі до шляху до модуля проекту, навіть якщо проект не є модульним (не маєmodule-info.java ).
howlger

1
@ShadowDragon недоліком цього зламу є те, що нам потрібне інше ім'я пакета для тестових класів, тому не можна робити приватне тестування пакетів
kleopatra,

7
Я щойно встановив Oxygen.3 (4.7.3), і проблема не зникає.
користувач118967

2
@chomp Якщо у вас 2018-09, це інша проблема, навіть якщо симптоми схожі. Якщо тестів не знайдено, це здебільшого через неправильний шлях до класу / модуля ( Проект> Властивості: Шлях побудови Java ).
howlger

2
@howlger Дякую. Після оновлення до останньої версії ця проблема зникла. Ще раз спасибі за допомогу :).
Датта,

123

Я вирішив проблему, клацнувши правою кнопкою миші тест і вибравши «Конфігурації запуску» та змінивши вибір «Тестовий рядок:» на «JUnit 4», як показано тут:

Знімок екрана конфігурацій запуску

Я знову провів тест, і він спрацював.


12
Забавно, що вибір «JUnit4» у конфігураціях запуску під час використання JUnit5. Я не буду називати це хорошим рішенням, на яке я можу покластися, маючи справу з великим проектом.
Левент Дівіліоглу,

1
Я також вважаю це рішення підозрілим, йому навіть не вистачає пояснень, чому це працює і на який ризик можна піти.
Амадан

Якщо це не допомогло вирішити проблему, перейдіть на вкладку classpath у тому ж вікні та додайте JUnit до бібліотек Bootstrap.
Аби

Дякую; вибір JUnit 4 вирішив мої проблеми. Наразі це найпростіший спосіб вирішити проблему.
Тес

На мій погляд, це менш інвазивне рішення, тобто без модифікації вихідного коду.
Рафаель Роча

63

У мене така ж проблема з STS 3.9.1. Це схоже на помилку Eclipse, однак, щоб виправити це, ви можете додати тестову залежність junit-platform-launcherдо свого проекту ( https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher )

Ось як я зробив для свого проекту, який використовує gradle:

dependencies {
    // other stuff here

    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: "5.${junit5MinorVersion}"
    testCompile group: 'org.junit.platform', name: 'junit-platform-launcher', version: "1.${junit5MinorVersion}"
}

файл gradle.properties:

junit5MinorVersion=1.0

Я вважаю, що те саме стосується, якщо ви бачите цей виняток під час використання IntelliJ IDEA.


1
Якщо використовується gradle, як правило, це стосується build.gradle. Якщо ви використовуєте maven, це pom.xml. Формат для maven інший.
Андрій Караїванський,

1
Це мені це виправило. Дякую!
Кріс

4
Ось фрагмент pom.xml для входу всередину <dependencies>: <dependency> <groupId> org.junit.jupiter </groupId> <artifactId> junit-jupiter-engine </artifactId> <version> 5.1.0 </version> <scope> тест </scope> </dependency> <dependency> <groupId> org.junit.platform </groupId> <artifactId> junit-platform-launcher </artifactId> <version> 1.1.0 </version> < scope> test </scope> </dependency>
user118967 02

1
Додавання junit-платформи 1.1.0 мені не вдалося. Він показує одне і те ж повідомлення "
P

2
@PSatishPatro Після додавання вищезазначеного. Вам потрібно перейти до запуску конфігурації для цього тесту Junit, а потім перейти на вкладку Classpath-> Advanced-> Add Library-> OK-> Junit-> Finish. Потім продовжуйте і запускайте це. Це додасть бібліотеку під час виконання "
Джуніта"

27

У моєму випадку проблема полягала в мені, а не в IDE, як Eclipse. Я імпортував тестовий клас JUnit 4.

Тому НЕ імпортуйте цей:

import org.junit.Test  // JUnit 4

Але ІМПОРТУЙТЕ цей:

import org.junit.jupiter.api.Test // JUnit 5

Я перемикався між JUnit 4 і 5, оскільки поточний проект використовує JUnit 5, але коли повідомляю про помилки Hibernate тощо, мені потрібно перейти на JUnit 4. Я в результаті випадково змішав імпорт. 🤦‍♂️
Каву

20

Поки що відповіді не стосуються проблеми обміну кодом з іншими людьми, які не обов'язково використовують Eclipse. Ось одна пропозиція. Головне - використовувати профіль maven для вирішення справи Eclipse.

Передбачається, що ви визначили властивість junit5.versionу своєму пом, як:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit5.version>5.1.1</junit5.version>
</properties>

то в profilesрозділі додайте наступне:

<profiles>
    <profile>
        <id>eclipse</id>
        <dependencies>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-launcher</artifactId>
            </dependency>
        </dependencies>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.junit.jupiter</groupId>
                    <artifactId>junit-jupiter-engine</artifactId>
                    <version>${junit5.version}</version>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-launcher</artifactId>
                    <version>1.1.1</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </profile>
</profiles>

Все, що вам потрібно зробити після цього, - це вибрати профіль у вашому локальному Eclipse: Клацніть правою кнопкою миші на своєму проекті та виберіть Maven > Select Maven Profiles...(або натисніть Ctrl+ Alt+ P), а потім перевірте щойно створений профіль "eclipse".

Вибір профілю Maven

З цим ви закінчили. Ваш Eclipse буде запускати тести Junit 5, як очікувалося, але додана вами конфігурація не забруднює інші збірки та інші IDE


12

Додавання цієї залежності maven за допомогою JUnit Jupiter (v.5.5.1) вирішує проблему.

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>1.5.1</version>
    <scope>test</scope>
</dependency>

У мене був створений проект JAR для Spring Boot 2.x, який привів JUnit 5. Я додав цю залежність і, схоже, її виправив. Дякую!
Девід Бредлі,

12

ПРОСТЕ ВИПРАВЛЕННЯ: (Додати бібліотеку JUnit 5)

ІНСТРУКЦІЯ:

  • Клацніть правою кнопкою миші на проекті -> Шлях побудови -> Налаштуйте Шлях побудови
  • У спливаючому вікні -> Додати бібліотеку -> JUnit -> JUnit 5 -> Готово -> Застосувати
  • Ви повинні побачити бібліотеку JUnit 5 (та її банки), додану до вашого проекту
  • Клацніть правою кнопкою миші на проекті -> Maven -> Оновити проект -> ОК

9

Жодне з рішень не допомогло:

Проблема в тому, що Eclipse 2018-12 має підтримку JUnit 5.3.1. Якщо запустити його з версією до цього, вона не вдасться.

Тож обов’язково використовуйте принаймні 5.3.1.

5.4.0 теж працює.

Якщо вашим батьківським pom є Spring Boot, вам потрібно переконатися (в управлінні залежностями), що junit-jupiter-api встановлено на ту саму версію. Вам не потрібен junit-platform-runner або -launcher !


2
Дякую за підказку. Я використовую 2019-3 і додав властивість, <junit-jupiter.version>5.4.1</junit-jupiter.version>щоб замінити версію, яка використовується під час завантаження Spring (2.1.3.RELEASE).
Ritesh

3
Це був той, який мені це виправив. Я видалив залежність -launcher, і він почав працювати. (затемнення 2019-09 та червень 5.4.2)
Реймонд,

Це рішення працює і для мене. Однак у моєму випадку я змінився з 5.3.1 на 5.5.1, а двигун-платформа-двигун на 1.5.1.
Арван Хойруддін,

1
Це мені це виправило. У eclipse 2020-03 тести починалися не з версії junit 5.5.2, а з 5.6.0. Як загальне оновлення для вашої відповіді: можливо, буде потрібно використовувати принаймні версію junit eclipse.
Ларс Брім

8

Після відповіді Андрія Караїванського ось декларація POM Maven:

<properties>
    ...
    <junit-jupiter.version>5.2.0</junit-jupiter.version>
    <junit-platform.version>1.2.0</junit-platform.version>
    ...
</properties>

<dependencies>
    ...
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>
    ...
</dependencies>

ОНОВЛЕННЯ

Відповідно до коментаря Олександра Весселя, ви можете використовувати org.junit: junit-bom, як описано у його відповіді на запитання Eclipse Не знайдено тестів за допомогою JUnit 5, спричинених NoClassDefFoundError для LauncherFactory .


1
Не оголошуйте властивості версій юпітера та платформи, використовуйте спеціальну специфікацію . В основному додайте залежність від специфікації в тег dependencyManagement за допомогою scope=import type=pom, потім додайте залежності до junit-platform-launcher і junit-jupiter-engine у ​​тестовій області, не надаючи версії в розділі залежностей. Спеціальна специфікація завжди гарантує, що у вас є лише одна версія платформи JUnit та Юпітер на шляху до класу, а відповідні версії призначені (наприклад, 5.2.0 з 1.2.0).
Олександр Вессель

@AlexanderWessel У мене немає специфікації. Це лише приклад витягу, залежності якого потрібно оголосити з Maven, де б це не було.
Gerold Broser

1
справа не в тому, що у вас (а точніше у вашому проекті) є специфікація. Я пояснював, що імпортуючи специфікацію, яку надає JUnit 5 , ви можете переконатися, що версії Junit Jupiter і Junit Platform сумісні, і вам не потрібно буде оголошувати версію в окремих залежностях, таким чином, також більше не потрібно заявляти версію властивості. Для того, щоб бути ясно: Ваш приклад робить роботу штрафу. Але імпорт специфікації JUnit трохи елегантніший (на мою скромну думку) і, за певних обставин, безпечніший.
Alexander Wessel


7

FYI, ще однією причиною "Не знайдено тестів із використанням junit5" є (ненавмисно чи навмисно) оголошення тестових випадків "приватними":

// Example of test case that doesn't get included
@Test
private void testSomeMethod() {
}

Вони повинні бути публічними.


5

Я також зіткнувся з тією ж проблемою, що вам просто потрібно додати бібліотеку, бібліотека Junit вже надається разом з Eclipse, тому вам просто потрібно слідувати нижче

Шлях побудови> Налаштувати шлях побудови> бібліотека> Додати бібліотеку> JUnit> Далі> закінчити

Це працює для мене


Це добре працювало в затемненні. Версія: 2020-06 (4.16.0) Ідентифікатор збірки: 20200615-1200
OJVM

4

З самого початку повідомлення про помилку повідомляє вам, що клас не знайдено: NoClassDefFoundErrorце означає, що PATH для переходу є проблемою.

  1. Клацніть правою кнопкою миші, щоб відкрити папку проекту, і виберіть Властивості АБО виберіть папку проекту та натисніть комбінацію cmd + i.

  2. виберіть зі списку "Шлях побудови Java".

  3. виберіть вкладку "Бібліотеки"
  4. Якщо JUnit 5 (або JUnit 4) додано до "Modulepath", виберіть "JUnit 5" і натисніть Remove.
  5. виберіть "Шлях до класу", натисніть "Додати бібліотеку ...".
  6. у відкритому вікні "Додати бібліотеку" виберіть JUnit, натисніть наступний.
  7. Виберіть потрібну версію бібліотеки JUnit і натисніть Готово.

Це все. Спробуйте запустити тест ще раз.


4

ви повинні знати, що:

@Before з junit4 йде з @Test: " імпортувати org.junit.Test "

І

@BeforeEach з Junit5 відповідає: " import org.junit.jupiter.api.Test "

тому переконайтеся, що ви використовуєте імпорт з тієї ж версії Junit, інакше це не працює, я думаю.


3

Використовуючи STS 3.9.1, я отримав ту ж проблему. Однак наразі мені не потрібні будь-які нові функції JUnit5, тому я спробував застосувати застарілу версію. Якщо ви використовуєте maven, ви можете додати такі залежності до вашого pom.xml:

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>${junit.platform.version}</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>${junit.jupiter.version}</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <version>${junit.vintage.version}</version>
    <scope>test</scope>
</dependency>

Це зробило для мене фокус (принаймні до тих пір, поки мені явно не потрібен JUnit5).


Чому ви додали "org.junit.vintage", якщо використовуєте JUnit5? Це лише для зворотної сумісності (наприклад, використання старого JUnit) AFAIK.
Левент Дівіліоглу,

Оскільки за допомогою цього проекту та STS 3.9.1 я не міг / не використовував JUnit5, а JUnit4.
mahe

3

Я отримав ту ж проблему після створення нового TestCase: Eclipse -> New -> JUnit Test Case. Він створює клас без модифікатора рівня доступу. Я міг би вирішити проблему, просто поставивши public перед ключовим словом class .


І клас, і метод вимагають загальнодоступного ключового слова. junit.org/junit4/javadoc/4.12/org/junit/Test.html
хмеханді

3

Оскільки всі повідомляли про помилку IDE, я спробував EclipseіSTS . В обох випадках це не вдається.

Як обхідний шлях я виправив, змінивши файл pom.xml, як показано нижче.

Я додав ці дві залежності maven junit-jupiter-engineіjunit-platform-launcher .

pom.xml

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform launcher -->
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

Також не забудьте додати версію обох залежностей maven до тегу властивостей.

<properties>
    <java.version>1.8</java.version>
    <junit-jupiter.version>5.2.0</junit-jupiter.version>
    <junit-platform.version>1.2.0</junit-platform.version>
</properties>

1
Додавання залежності junit-platform-launcher вирішило проблему для мене. Дякую
Венкатеш Манохар

3

Я використовую eclipse 2019-09.

Мені довелося оновити версію junit-bom щонайменше до 5.4.0. Раніше я мав 5.3.1, і це викликало ті самі симптоми ОП.

Зараз моя конфігурація:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>5.5.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

інший варіант - додати <junit-jupiter.version> 5.4.0 </junit-jupiter.version> до властивостей pom
Uri Loya

2

Оскільки розміщення блоків коду в коментарях неможливе, ось шаблон POM, який я використовую в проектах, що вимагають JUnit 5. Це дозволяє створювати та "запускати як тест JUnit" в Eclipse та будувати проект за допомогою звичайного Maven.

<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>group</groupId>
    <artifactId>project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>project name</name>

    <dependencyManagement>
      <dependencies>
        <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.3.1</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>

    <dependencies>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <!-- only required when using parameterized tests -->
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <scope>test</scope>
      </dependency>
    </dependencies>
</project>

Ви бачите, що тепер вам потрібно лише оновити версію в одному місці, якщо ви хочете оновити JUnit. Крім того, номер версії платформи не повинен відображатися (у сумісній версії) де-небудь у вашому POM, це автоматично управляється за допомогою junit-bomімпорту.


2

Я використовую:

Версія Spring Tool Suite 4: 4.4.2. Ідентифікатор збірки RELEASE: 201911201053 Версія Java: 1.8.0_191

і відображається повідомлення - Не знайдено тестів із бігуном тесту "JUnit5"

у мене спрацювала наведена нижче конфігурація

    <properties>
        <java.version>1.8</java.version>
        <junit-jupiter.version>5.5.2</junit-jupiter.version>
        <junit-platform.version>1.5.2</junit-platform.version>
    </properties> 

    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>

2

Вам не вистачає панелі запуску платформи JUnit 5 із групою: 'org.junit.platform', ім'я: 'junit-platform-launcher'

Просто додайте в ur POM:

<dependency>
       <groupId>org.junit.platform</groupId>
       <artifactId>junit-platform-launcher</artifactId>
    </dependency>

1

Та сама помилка, з якою я стикався у версії eclipse Oxygen.3a Release (4.7.3a). Існує проблема з невідповідністю залежностей Maven. Для вирішення я оновив свій Pom.xml наступними залежностями.

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 com.netapp.junitnmactiopractice JunitAndMactioPractice 0.0.1-SNAPSHOT

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <junit.jupiter.version>5.1.1</junit.jupiter.version>
    <junit.platform.version>1.1.1</junit.platform.version>
</properties>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-runner</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>



1

Ви можете використовувати тільки в junit-jupiterякості тест - залежність , а не junit-jupiter-api, junit-platform-launcher, junit-jupiter-engine.

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.5.2</version>
    <scope>test</scope>
</dependency>

1
Це рішення працювало для мене з JUnit 5.6.2, Java 11 (і eclipse 2020-03 / 4.15.0)
coseos

1

Для мене я налаштував шлях збірки, щоб додати бібліотеку JUnit 5, а також додавши залежність

     <dependency> 
        <groupId>org.junit.platform</groupId> 
        <artifactId>junit-platform-launcher</artifactId> 
        <version>1.1.0</version> 
        <scope>test</scope> 
     </dependency>

окремо.


1

Я також зіткнувся з цією проблемою з Eclipse (версія: 2019-12 (4.14.0)). Здається, рішення полягає у використанні IntelliJ або у використанні тесту Maven для запуску таких тестів у Eclipse.


1

Я використовував насправді spring-tool-suite-4-4.5.1 і мав цю помилку, коли хочу запустити тестовий клас. і рішенням було додати до 'шлях побудови Java', 'junit5' у бібліотеках java build path img


0

вам слід змінитися

@Test
public static void testmethod(){}

до

@Test
public void testmethod(){}

@Test не підтримує статичний метод


0

Я зіткнувся з тією ж помилкою, і в моєму випадку справа була просто в тому, щоб зайти Project Properties > Maven > Update projectта / або почистити та відновити проект.


0

Просто додав мій Test.class через меню eclipse і працював. Клацніть правою кнопкою миші, щоб спроектувати -> Нове -> Інше -> JUnit -> Тестовий кейс JUnit


0

Це може спричинити версія junit-platform-launcher / junit-platform-runner.

1.1.0 не працює

1.4.1 працює в моїй установці.

Я думаю, що це помилка в eclipse, оскільки вона працює з бібліотеками вищих версій junit, а не з іншими версіями.

Це вирішило мою проблему. Інша резолюція видалася мені менш здійсненною чи ризикованою. Дякую.


0

Коли я змінив свою версію api для jupiter на останню, вона була вирішена. Тим часом у моєму eclipse та інших розширеннях eclipse ide (таких як STS) з’являється помилка шляху побудови. Для кожного оновлення maven ide змушує мене встановлювати системну бібліотеку JRE.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.