我有一个具有以下目录结构的项目:
src/main/java
src/main/resources
src/test/java
src/test/resources
我要添加一个新文件夹integrationTest
:
src/integrationTest/java
src/integrationTest/resources
我想使集成测试与单元测试完全分开的地方。我应该如何添加呢?在build.gradle中,我不确定如何指定一个新任务来选择要创建的文件夹并单独运行测试。
答案 0 :(得分:2)
Gradle具有source sets
的概念,这正是您在这里需要的。您可以在 Java插件文档中找到有关此文档的详细文档:https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_source_sets
您可以在build.gradle
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')
}
}
这将自动创建新的配置 integrationTestCompile
和integrationTestRuntime
,可用于定义新的 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']
}
}
}
干杯!