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

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

ShadowDragon
источник
Но пытались ли вы выяснить разницу, как указано в ответе на этот вопрос - 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», как показано здесь:

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

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

stringVector
источник
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
armin.miedl
источник
Я переключался между 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>
hbhattac
источник
У меня был проект 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 !

T3rm1
источник
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, иначе, я думаю, это не сработает.

Y.halaoui
источник
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.

Ömer
источник