添加多个源测试目录以进行测试

时间:2018-10-09 09:40:50

标签: java gradle

我有一个具有以下目录结构的项目:

src/main/java
src/main/resources
src/test/java
src/test/resources

我要添加一个新文件夹integrationTest

src/integrationTest/java
src/integrationTest/resources

我想使集成测试与单元测试完全分开的地方。我应该如何添加呢?在build.gradle中,我不确定如何指定一个新任务来选择要创建的文件夹并单独运行测试。

2 个答案:

答案 0 :(得分:2)

Gradle具有source sets的概念,这正是您在这里需要的。您可以在 Java插件文档中找到有关此文档的详细文档:https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_source_sets

您可以在build.gradle

中定义新的源集“ integrationTest”
sourceSets {
    integrationTest {
        java {
            compileClasspath += main.output + test.output
            runtimeClasspath += main.output + test.output
            srcDir file('src/integration-test/java')
        }
        resources.srcDir file('src/integration-test/resources')
    }
}

这将自动创建新的配置 integrationTestCompileintegrationTestRuntime,可用于定义新的 Task integrationTests

task integrationTest(type: Test) {
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
}   

供参考:可以在这里找到完整的示例:https://www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-integration-testing/

答案 1 :(得分:0)

请同时将新创建的源文件夹添加到 build.gradle 中的源集中,如下所示:

    sourceSets {

main {
     java {
            srcDirs = ['src']
         }
     }

test {
        java {
            srcDirs = ['test']
         }
     }
integrationTest {
                 java {
                     srcDirs = ['integrationTest']
                     }
                }
}

干杯!