#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 в мой путь к классу, хотя я уже это сделал
ОБНОВЛЕНИЕ 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()
}
Ответ №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 иногда кружится голова от проектов gradle4. Я обновил вопрос. Я исправил импорт и выполнил команду 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 неожиданно несколько хитрых модулей.
Я вижу на скриншоте, что у вас есть один из них:
Я советую удалить его.