使用IntelliJ IDEA 14.0.2,我已经导入了gradle java项目。我们已经设置了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将启动“测试”任务而不是“integTest”任务。如何让IntelliJ启动正确的任务?
或者,如何根据“--tests” arg的内容使测试任务委托(delegate)给另一个任务?
最佳答案
请遵循以下步骤:gradle设置> Gradle> Runner并选中Delegate IDE构建/运行操作以进行gradle。然后申请并确定。
祝好运!