0

在使用 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/...?

4

1 回答 1

1

在 IDEA 中构建时,不涉及 Gradle。复制资源和编译代码的是 IDEA。您可以将 Gradle 生成的资源添加到 IDEA 构建中,但您必须自己运行相应的 Gradle 任务,或者配置 IDEA 运行配置来调用任务。(我似乎在 IDEA 中找不到编译后挂钩。)

于 2013-10-24T19:10:44.633 回答