JUnit не распознается в IntelliJ

#java #intellij-idea #junit

#java #intellij-идея #junit

Вопрос:

Я пытаюсь интегрировать и настроить библиотеки JUnit 5 с IntelliJ в моем дистрибутиве Linux. Я добавил JUnit в свой gradle и собрал его с помощью gradle. Но я все еще вижу ошибку в своих модульных тестах, предлагающую мне «добавить junit в мой путь к классу», хотя это уже есть. введите описание изображения здесь

Вот мой build.gradle

     id 'java'
    id 'idea'
}

group 'com.techchallenge'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    testCompile('org.junit.jupiter:junit-jupiter-api:5.3.1')
    testCompile('org.junit.jupiter:junit-jupiter-engine:5.3.1')
}
test {
    useJUnitPlatform()
}
 

Обновить
Смотрите скриншот. Я добавил зависимость, и она по-прежнему побуждает меня добавить junit в мой путь к классу, хотя я уже это сделал
обновленный intellij

ОБНОВЛЕНИЕ 2 Я обновил build.gradle, а также выполнил тест gradlew на чистую сборку, который прошел успешно. Но он по-прежнему показывает ошибку с моими аннотациями junit — и продолжает предлагать мне добавить junit 5.4 в мой путь к классу, хотя он там есть.

     id 'java'
    id 'idea'
}

group 'com.techchallenge'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    implementation 'org.junit.jupiter:junit-jupiter:5.4.2'

    testCompile('org.junit.jupiter:junit-jupiter-api:5.4.2')
    testRuntime('org.junit.jupiter:junit-jupiter-engine:5.4.2')
    testRuntime('org.junit.vintage:junit-vintage-engine:5.4.2')

}
test {
    useJUnitPlatform()
}
 

ошибки в intellij

Ответ №1:

Он должен распознать вашу настройку. Вы можете попробовать добавить зависимости junit5 (именно так добавляется junit5, создавая проект Gradle с нуля, используя New Project опцию IntelliJ), как показано ниже, затем перезагрузите свой проект Gradle.

     dependencies {
        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
    } 
 

Вы можете попробовать File | Invalidate caches/Restart... вариант, чтобы избавиться от нечетных проблем, если ваш проект успешно выполняет тесты с помощью gradle test команды cli

https://www.jetbrains.com/help/idea/invalidate-caches.html

Вы должны использовать правильный импорт для Junit 5, вы используете импорт Junit4. Начиная с версии 5 @Test , Assertions , и т.д. находятся в org.junit.jupiter.api пакете. например:

 import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class DummyTest {

    @BeforeEach
    void setUp() {

    }

    @AfterEach
    void tearDown() {

    }

    @Test
    void name() {
        Assertions.assertTrue(true);
    }
 

Вы можете заглянуть в junit5-jupiter-starter-gradle

Комментарии:

1. Я обновил свой вопрос — все еще вижу ту же странную ошибку «добавить в путь к классу»

2. Что еще я могу сделать? я попытался удалить папку .gradle, а также аннулировать кеш и перестроить…. И я все еще получаю ошибку?

3. Вы импортировали классы JUnit 4, смотрите Мой обновленный ответ, используйте правильную команду imports amp; run gradle test в терминале, чтобы проверить, в порядке ли конфигурация вашего проекта, у IntelliJ иногда кружится голова от проектов gradle

4. Я обновил вопрос. Я исправил импорт и выполнил команду gradle test — и он говорит, что он успешно собран. но у меня все еще есть ошибки, и мне предлагается добавить junit 5 в мой путь к классу, хотя он уже есть

Ответ №2:

Убедитесь, что вы правильно настроили gradle внутри вашего intellij, как для maven

и убедитесь, что вы установили плагин JUnit для IntelliJ IDEA,

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

вы даже можете указать gradle на свой локальный репозиторий, например

 repositories {
  flatDir {
   dirs 'C:/path/to/local/directory'
  }
}
dependencies {
compile name: 'name-of-jar'
}
 

Комментарии:

1. однако я использовал gradle — нужно ли мне устанавливать maven?

2. @Linkx_lair вам не нужно устанавливать Maven, чтобы использовать Gradle

Ответ №3:

У меня была аналогичная проблема с JUnit 5 использованием Maven . Я обнаружил, что IDEA создала некоторые *.iml файлы там, где их не должно было быть. У меня был один в папке с тестом test.iml . После их удаления проблемы исчезли.

Пожалуйста, проверьте, не создала ли IDEA неожиданно несколько хитрых модулей.

Я вижу на скриншоте, что у вас есть один из них:

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

Я советую удалить его.