Eclipse Не найдено тестов с использованием JUnit 5, вызванных NoClassDefFoundError для LauncherFactory


94

Проблема

Всякий раз, когда я запускаю свои проекты JUnit test (используя 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 Test».
  • удалите JUnit из Buildpath и добавьте его снова
  • перезапустить затмение
  • Я также переместил весь проект с одной машины на другую и попробовал его с предоставленной установкой eclipse.
  • переименовать метод тестирования.
  • повторно ввести аннотацию @Test

Некоторые из этих шагов можно найти здесь , но в итоге проблема осталась.


Но пытались ли вы выяснить разницу, как указано в ответе на этот вопрос - stackoverflow.com/questions/34413/… ?
Наман

Ответы:


20

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

В качестве обходного пути поместите тестовый код в отдельный проект и добавьте тестируемый проект в путь к модулю, но не добавляйте 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), и проблема не устранена.
user118967 02

2
@chomp Если у вас 2018-09, это другая проблема, даже если симптомы похожи. Если тесты не были найдены, это в основном связано с неправильным путем к классам / модулю ( Проект> Свойства: Путь сборки Java ).
Howlger

2
@howlger Спасибо. После обновления до последней версии эта проблема исчезла. Еще раз спасибо за помощь :).
Датта

121

Я исправил проблему, щелкнув тест правой кнопкой мыши, выбрав «Выполнить конфигурации» и изменив значение «Средство выполнения теста:» на «JUnit 4», как показано здесь:

Снимок экрана с настройками запуска

Я снова провел тест, и он сработал.


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

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

Если это не помогло вам решить проблему, перейдите на вкладку classpath в том же окне и добавьте JUnit в библиотеки Bootstrap.
Abhi

Благодарность; выбор JUnit 4 решил мои проблемы. На данный момент это самый простой способ решить проблему.
Tes

На мой взгляд, это менее инвазивное решение, то есть без изменения исходного кода.
Рафаэль Роча,

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> test </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-platform 1.1.0 у меня не сработало. Он показывает то же сообщение «Тесты не найдены с
P Satish Patro

2
@PSatishPatro После добавления вышеупомянутого. Вам нужно запустить конфигурацию для этого тестового примера Junit, а затем перейти на вкладку Classpath-> Advanced-> Add Library-> OK-> Junit-> Finish. Тогда идите и запустите его. Это добавит библиотеку во время выполнения Junit
Jaison Varghese

26

В моем случае проблема была во мне, а не в среде 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в своем pom, например:

<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 (и ее jar-файлы), добавленные в ваш проект.
  • Щелкните правой кнопкой мыши проект -> 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)
Raymond

Это решение работает и для меня. Однако в моем случае я изменил с 5.3.1 на 5.5.1 и junit-platform-engine на 1.5.1.
Arwan Khoiruddin

1
Это исправило это для меня. В eclipse 2020-03 тесты начинались не с junit версии 5.5.2, а с 5.6.0. В качестве общего обновления для вашего ответа: возможно, потребуется использовать хотя бы версию junit, которую использует eclipse.
Ларс Брим,

8

После ответа Андрея Караиванского вот декларация Maven POM:

<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
Не объявляйте свойства для версий jupiter и platform, вместо этого используйте BOM . В основном добавьте зависимость от спецификации в теге dependencyManagement с scope=import type=pom, затем добавьте зависимости для junit-platform-launcher и junit-jupiter-engine в области тестирования, не указывая версию в разделе зависимостей. Спецификация всегда гарантирует, что у вас есть только одна версия JUnit Platform и Jupiter в пути к классам, и что соответствующие версии являются теми, которые предназначены (например, 5.2.0 с 1.2.0).
Александр Вессель

@AlexanderWessel У меня нет спецификации. Это всего лишь пример отрывка, зависимости которого нужно объявить с помощью Maven, где бы они ни находились.
Джеральд Брозер

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


7

К вашему сведению, еще одна причина «Тестов с использованием 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это означает, что проблема в пути к junit.

  1. Щелкните правой кнопкой мыши папку проекта и выберите «Свойства» ИЛИ выберите папку проекта и нажмите комбинацию cmd + i.

  2. выберите из списка «Путь сборки Java».

  3. выберите вкладку "Библиотеки"
  4. Если JUnit 5 (или JUnit 4) добавлен в «Modulepath», выберите «JUnit 5» и нажмите «Удалить».
  5. выберите «Путь к классам», нажмите «Добавить библиотеку ...».
  6. в открывшемся окне «Добавить библиотеку» выберите JUnit, нажмите «Далее».
  7. Выберите версию библиотеки JUnit, которая вам нужна, и нажмите Готово.

Это все. Попробуйте снова запустить тест.


4

ты должен знать что :

@Before из junit4 идет с @Test: " import 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
hmehandi

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, и это вызывало те же симптомы OP.

Моя конфигурация сейчас:

    <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
Ури Лойя

2

Поскольку невозможно разместить блоки кода в комментариях, вот шаблон POM, который я использую в проектах, требующих JUnit 5. Это позволяет создавать и «Запускать как JUnit Test» в 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>


Вы видели Руководство пользователя JUnit 5, посвященное junit-platform-runner: « Средство выполнения для выполнения тестов и наборов тестов на платформе JUnit в среде JUnit 4. »
Герольд Брозер,

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 build path', '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 и другие ide расширений eclipse (например, STS) получают ошибку пути сборки. Для каждого обновления maven ide вынуждает меня устанавливать системную библиотеку JRE.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.