我在gradle中设置了一个集成测试源文件夹,如下:
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中正确配置它?
我正在Ubuntu 16.04上使用IntelliJ 2016.1.3和Gradle 2.14.1。
$ ./gradlew cleanIdea idea
。 - tddmonkey.iml
文件,但IntelliJ没有使用它们。你知道我该怎么做吗?Java项目是另一个文件夹的子文件夹,那个文件夹是带有.idea
配置文件夹的主项目。 - Jorn$ ./gradlew cleanIdea idea; open <name_of_project>.ipr
- tddmonkey