Используя IntelliJ IDEA 14.0.2, я импортировал java-проект gradle. Мы установили sourceSet и конфигурацию, чтобы отделить тесты интеграции от модульных тестов. (наши интеграционные тесты находятся в дереве тестового источника, но в их собственном пакете). Соответствующими битами из build.gradle являются:
sourceSets {
test {
java {
exclude '**/it/**'
}
}
integTest {
java {
srcDir 'src/test/java'
include '**/it/**'
}
resources {
srcDir 'src/test/resources'
}
compileClasspath += sourceSets.main.output + sourceSets.test.output + configurations.testRuntime
runtimeClasspath += sourceSets.main.output + sourceSets.test.output + configurations.testRuntime
}
}
configurations {
integTestCompile.extendsFrom testCompile
integTestRuntime.extendsFrom testRuntime
}
idea {
module {
scopes.TEST.plus += [ configurations.integTestCompile ]
}
}
task integTest(type: Test) {
testClassesDir = sourceSets.integTest.output.classesDir
classpath = sourceSets.integTest.runtimeClasspath
}
Это отлично работает из командной строки. Но когда я открываю источник интеграционного теста в IntelliJ и щелкаю правой кнопкой мыши, чтобы запустить его, IntelliJ запускает задачу "test", а не задачу "InteTest". Как заставить IntelliJ запускать правильную задачу?
В качестве альтернативы, как я могу сделать делегат тестовой задачи другой задачей на основе содержимого "-tests" arg?