在使用 gradle idea 插件配置我的多项目构建后,我正在尝试在想法 12 中运行我的测试用例。我的项目配置为对测试资源 (src/test/resources) 使用 gradle 默认值。我对这些资源应用了一些过滤:
// filter test resources
processTestResources {
doLast {
ant.replace(dir: sourceSets.test.output.resourcesDir, replacefilterfile: testProps, includes: "**/*.xml,**/*.properties")
}
}
此外,processTestResources 依赖于将一些“生成”文件复制到 sourceSets.test.output.resourcesDir 的自定义任务。
我的许多测试都失败了,因为它们依赖于过滤后的测试资源。当我查看用于测试用例的类路径时,它指向 rootProject/out/test/targetProject。当我在那里查看时,我看到了我的测试类和我的预过滤资源(以及我在处理测试资源之前明确复制的资源)。看来它们只是从 src/test/resources 复制而来。这是预期的行为吗?另外,为什么将测试类和资源放入 rootProject/out/rootProject 而不是默认 gradle 默认 rootProject/targetProject/build/...?