Моя цель — настроить исходный набор для интеграционных тестов. Я создал исходный набор под названием «intTest». Я положил простой тест внутри:
package com.github.frozensync;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class Application {
@Test
@DisplayName("should work")
void foo() {
assertEquals(2, 2);
}
}
Когда я пытаюсь запустить его, я получаю следующую ошибку:
ОШИБКА: Сборка завершилась с ошибкой.
* Что пошло не так:
Не удалось выполнить задачу ':integrationTest'.
> Для заданных тестов не найдено: [com.github.frozensync.Application](filter .includeTestsMatching)
* Попробуйте:
Запустите с параметром --stacktrace, чтобы получить трассировку стека. Запустите с параметром --info или --debug, чтобы получить больше выходных данных журнала. Запустите с --scan, чтобы получить полную информацию.
* Получите дополнительную помощь на https://help.gradle.org
ОШИБКА ПОСТРОЙКИ через 0 мс
А это мой build.gradle
plugins {
id 'java'
}
group 'com.github.frozensync'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
sourceSets {
intTest {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
}
idea {
module {
testSourceDirs += sourceSets.intTest.java.srcDirs
testResourceDirs += sourceSets.intTest.resources.srcDirs
}
}
configurations {
intTestImplementation.extendsFrom implementation
intTestRuntimeOnly.extendsFrom runtimeOnly
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:5.5.2'
intTestImplementation 'org.junit.jupiter:junit-jupiter:5.5.2'
}
test {
useJUnitPlatform()
}
task integrationTest(type: Test) {
description = 'Runs integration tests.'
group = 'verification'
testClassesDirs = sourceSets.intTest.output.classesDirs
classpath = sourceSets.intTest.runtimeClasspath
shouldRunAfter test
}
check.dependsOn integrationTest
Я следовал руководству от Gradle. Когда я столкнулся с этой проблемой, я попробовал следующее:
– Запустите ./gradlew cleanIntegrationTest integrationTest
, чтобы обойти IntelliJ, но он по-прежнему выполнил 0 тестов
– Добавьте плагин Gradle идеи.
— добавьте dependsOn
из this.
— Решения из это.
Как я могу позволить Gradle обнаруживать тесты внутри исходного набора «intTest»?