我有一个具有以下目录结构的项目:
src/main/java
src/main/resources
src/test/java
src/test/resources
Run Code Online (Sandbox Code Playgroud)
我想添加一个新文件夹integrationTest:
src/integrationTest/java
src/integrationTest/resources
Run Code Online (Sandbox Code Playgroud)
我想让集成测试与单元测试完全分开。我应该如何添加这个?在 build.gradle 中,我不确定如何指定一个新任务来选择这个文件夹来构建它并单独运行测试。
Gradle 有一个概念,source sets这正是您在这里所需要的。您在此处的Java 插件文档中有详细的文档:https ://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_source_sets
您可以定义一个新的源集“integrationTest” 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')
}
}
Run Code Online (Sandbox Code Playgroud)
这将自动创建新的配置 integrationTestCompile和integrationTestRuntime,你可以用它来定义一个新的任务 integrationTests:
task integrationTest(type: Test) {
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
}
Run Code Online (Sandbox Code Playgroud)
供参考:可以在此处找到一个完整的工作示例:https : //www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-integration-testing/
请将新创建的源文件夹也添加到build.gradle 中的源集中,如下所示:
sourceSets {
main {
java {
srcDirs = ['src']
}
}
test {
java {
srcDirs = ['test']
}
}
integrationTest {
java {
srcDirs = ['integrationTest']
}
}
}
Run Code Online (Sandbox Code Playgroud)
干杯!
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |