为什么gradle idea插件配置classpath以使用未处理/源测试资源而不是过滤/生成的资源

时间:2013-10-24 16:25:09

标签: intellij-idea gradle

在使用gradle idea插件配置我的多项目构建之后,我正在尝试在构思12中运行我的测试用例。我的项目配置为使用测试资源的gradle默认值(src / test / resources)。我对这些资源应用了一些过滤:

// 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 /...?

1 个答案:

答案 0 :(得分:1)

当您构建IDEA时,Gradle不参与。 IDEA正在复制资源并编译代码。您可以将Gradle生成的资源添加到IDEA构建中,但您必须自己运行相应的Gradle任务,或者配置IDEA运行配置以调用任务。 (我似乎无法在IDEA中找到后编译钩子。)