Как запустить интеграционные тесты из контекстного меню IntelliJ для проекта gradle?
Используя 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?
Ответы
Ответ 1
Щелкните правой кнопкой мыши по тесту в файле, и вы должны увидеть пункт меню для Create Run Configuration >
. Выберите этот диалог в диалоговом окне, измените параметр Tasks
. Измените это на integTest
и нажмите "ОК". С этого момента вам, возможно, придется запустить тест, используя систему меню, а не контекстную систему. т.е. Run > Run...
Ответ 2
Выполните следующие действия: настройки gradle> Gradle> Runner и установите флажок Делегировать IDE для сборки/запуска действий на gradle. Тогда подайте заявку и ок.
Удачи!