我想将我的系统sourceSet的类标记为单元测试类。我尝试使用以下代码标记它们:
sourceSets {
main {
groovy {
srcDirs = [
'src/main/masks'
}
resources {
srcDirs += 'src/main/journaltemplates'
}
}
/* This brings up systest in the test resources */
test.java.srcDir 'src/systest/java'
test.resources.srcDir 'src/systest/resources'
systest {
java {
srcDirs = ['src/systest/java']
}
resources {
srcDirs = ['src/systest/resources']
}
}
}
使用此解决方案,源集标记为单元测试类,但另外添加到测试源集中,这是不需要的。我想保留系统sourceSet中的类,并指定systest sourceSet是一个单元测试sourceSet。我想要系统的sourceSet和测试源集相同的行为,但它们应该是不同的sourceSets。
我尝试的第二个解决方案是使用idea插件进行gradle并修改模块设置,如in this SO post所示:
idea {
module {
testSourceDirs += file('src/systest')
}
}
该解决方案的问题在于系统源也被添加到测试源集中。
希望这很清楚,否则请评论。谢谢。
请尝试以下配置:
apply plugin: "idea"
sourceSets {
systest {
java {
compileClasspath = test.output + main.output
runtimeClasspath = output + compileClasspath
}
}
}
idea {
module {
testSourceDirs = sourceSets.systest.allSource.srcDirs
}
}