在我的build.gradle文件中,我为集成测试定义了一个单独的sourceSet:
sourceSets {
integtest {
java.srcDir 'src/integtest/java/io/attil/integration'
resources.srcDir 'src/integtest/resources'
}
}
我想在我的一个手动定义的任务中使用集成测试资源的路径(该任务预先填充集成测试的数据库;sql脚本位于提到的资源文件夹中)。
我现在有以下解决方案:
task prefillDatabase {
// ... snip!
String sqlString = new File(sourceSets.integtest.resources.srcDirs.iterator().next().toString() + '/setup_integration_tests.sql').text
// ... snip!
}
虽然这是可行的,但它相当麻烦。
有没有更好、更短的方法来实现同样的目标?(我正在寻找像sourceSets.integtest.resources.srcDir
这样的东西。)
发布于 2017-06-07 15:40:07
我不确定这是不是不那么冗长,但我认为它更正确
File file = sourceSets.integtest.resources.matching {
include 'setup_integration_tests.sql'
}.singleFile
String sqlString = file.text
请参阅FileTree.matching(Closure)和FileCollection.getSingleFile()
另外,在我看来,这是错误的
java.srcDir 'src/integtest/java/io/attil/integration'
我想它应该是
java.srcDir 'src/integtest/java'
java.include 'io/attil/integration/**'
https://stackoverflow.com/questions/44397649
复制相似问题