Gradle проект запускает тесты jUnit 5 в IntelliJ
Я пытаюсь и Gradle и jUnit5 прямо сейчас. Все работает нормально, за исключением того, что я не могу запустить определенный тест jUnit. Параметр "Выполнить тестирование образца" не отображается, когда я щелкаю правой кнопкой мыши тестовый класс.
У меня последняя версия IntelliJ (2016.1.3) Ultimate. Вот мой build.gradle
файл:
repositories {
mavenCentral()
}
apply plugin: 'java'
version = '1.0.0-SNAPSHOT'
jar {
baseName = 'test-project'
}
dependencies {
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.0-M1'
}
Структура проекта стандартная (как в Maven). И вот пример теста:
package com.test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class SampleTest {
@Test public void sampleTest() {
int test = 1;
Assertions.assertTrue(test == 1);
}
}
Что мне не хватает?
РЕДАКТИРОВАТЬ:
Кажется, Грэдл тоже не проходит мой тест. Когда я иду в build/reports/tests/index.html
, это указывает на 0 тест.
ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ:
После ответа @ dunny, вот что я сделал, чтобы все работало. Я изменил мой build.gradle
файл как это:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M1'
}
}
repositories {
mavenCentral()
}
apply plugin: 'java'
apply plugin: 'org.junit.platform.gradle.plugin'
version = '1.0.0-SNAPSHOT'
jar {
baseName = 'test-project'
}
dependencies {
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.0-M1'
testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.0.0-M1'
testCompile group: 'junit', name: 'junit', version: '4.12'
testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.0.0-M1'
}
test {
testLogging {
events 'started', 'passed'
}
}
В IntelliJ я затем открыл окно Gradle и нажал кнопку "обновить все проекты gradle", чтобы обновить библиотеки.
Затем в моем тестовом классе я добавил @RunWith(JUnitPlatform.class)
поверх объявления класса.
И когда я делаю gradle build
, результаты доступны здесь: build\test-results\junit-platform\TEST-junit-jupiter.xml
3 ответа
IntelliJ 2016.1.3 не поддерживает тесты JUnit 5. Однако вы можете добавить аннотацию @RunWith(JUnitPlatform.class)
, который будет выполнять ваш тест в режиме совместимости JUnit 4 (вы все еще можете использовать все функции JUnit 5). См. http://junit.org/junit5/docs/current/user-guide/ для получения дополнительной информации.
Для Gradle вам необходимо включить плагин Gradle JUnit 5 для поддержки:
buildscript {
repositories {
mavenCentral()
// The following is only necessary if you want to use SNAPSHOT releases.
// maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
}
dependencies {
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M1'
}
}
apply plugin: 'org.junit.platform.gradle.plugin'
Последняя версия Idea 2016.2 теперь поддерживает фреймворк JUnit 5. Вы можете напрямую запустить тест JUnit5 без junit-gradle-plugin. Пожалуйста, посмотрите, что нового в интеллигентной идее. После того, как вы обновили свою идею до этой новой версии, вы можете создать проект gradle и выполнить следующие шаги, чтобы проверить, как запустить тест JUnit 5.
build.gradle
apply plugin: 'java' compileTestJava { sourceCompatibility = 1.8 targetCompatibility = 1.8 } repositories { mavenCentral() } dependencies { testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M1") testRuntime("org.junit.vintage:junit-vintage-engine:4.12.0-M1") //NOTE: if you replaced above testRuntime dependency with following //testRuntime("org.junit.jupiter:junit-jupiter-engine:5.0.0-M1") //this test would fail. }
Создайте класс FirstJUnit5Test в вашей исходной папке теста
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class FirstJUnit5Test { @Test void myFirstTest() { assertEquals(2, 1 + 1); } }
- Щелкните правой кнопкой мыши по этому тестовому классу на левой панели проекта и выберите "Запустить" FirstJUnit5Test ". Вы увидите следующий результат:
- Для получения дополнительной информации вы можете оформить заказ на этот проект на GitHub.
ОБНОВИТЬ
Для IDEA 2016.3.3 и выше dependencies
Конфигурация может быть упрощена до:
dependencies {
testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M3")
}
Вы должны запускать свои тесты с помощью бегуна JUnit 4, так как IntelliJ 2016.1.3 не имеет тестера JUnit 5.
Если вы начинаете с примера pom.xml
ссылки в документации, https://github.com/junit-team/junit5-samples/blob/r5.0.0-M1/junit5-maven-consumer/pom.xml, затем выполните следующие две вещи.
Добавьте еще одну зависимость
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>${junit.platform.version}</version>
</dependency>
затем сделайте ваш тестовый класс общедоступным и аннотируйте его @RunWith(JUnitPlatform.class)
,
Ваша IDE теперь распознает класс как тест и обеспечит интеграцию.