У меня есть исходная папка интеграционного теста, настроенная в градиенте так:
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestCompileOnly.extendsFrom integrationTestCompile
integrationTestCompileOnly.extendsFrom testCompileOnly
integrationTestRuntime.extendsFrom testRuntime
}
sourceSets {
integrationTest {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/integrationTest/java')
}
resources.srcDir file('src/integrationTest/resources')
}
}
task integrationTest(type:Test) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
outputs.upToDateWhen { false }
}
}
Для выполнения тестов это работает отлично, но это вызывает проблемы с инспекциями IntelliJ, что может изменить поведение тестового кода. IntelliJ не распознает исходную папку в качестве источника теста.
Я попытался добавить их как таковые (внутри subprojects
):
idea {
module {
testSourceDirs += file('src/integrationTest/java')
}
}
но это не помогло. Я также попытался вручную пометить их как источник теста (контекстное меню → отметить каталог как → источник исходных данных), но IntelliJ быстро переопределяет это обратно к корню исходного кода.
Как настроить это правильно в Gradle?
Я использую IntelliJ 2016.1.3 и Gradle 2.14.1 на Ubuntu 16.04