我有一个目录结构如下的项目:
src/main/java src/main/resources src/test/java src/test/resources
字符串我想添加一个新文件夹integrationTest:
integrationTest
src/integrationTest/java src/integrationTest/resources
型我想将集成测试与单元测试完全分开。我应该如何添加它?在build.gradle中,我不确定如何指定一个新任务,该任务将选择此文件夹构建它并单独运行测试。
kokeuurv1#
Gradle有一个source sets的概念,这正是你在这里所需要的。你可以在 Java Plugin 文档中找到关于它的详细文档:https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_source_sets您可以在build.gradle中定义一个新的源集“integrationTest”
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') } }
字符串这将自动创建新的 * configuration * integrationTestCompile和integrationTestRuntime,您可以使用它们来定义新的 TaskintegrationTests:
integrationTestCompile
integrationTestRuntime
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/
igetnqfo2#
请将新创建的源文件夹也添加到build.gradle中的源集合中,如下所示:
sourceSets { main { java { srcDirs = ['src'] } } test { java { srcDirs = ['test'] } } integrationTest { java { srcDirs = ['integrationTest'] } } }
字符串干杯!干杯!
jrcvhitl3#
Gradle 7.3(2021年11月发布)中引入的声明式测试套件的新功能可以轻松解决这一需求,而无需所有底层的管道细节。要使用它,请将jvm-test-suite插件添加到构建脚本插件中。
jvm-test-suite
testing { suites { val integrationTest by registering(JvmTestSuite::class) { dependencies { implementation(project()) } targets { all { testTask.configure { shouldRunAfter(test) } } } } } } tasks.named("check") { dependsOn(testing.suites.named("integrationTest")) }
字符串您可以在这里找到有关此功能的更多信息:https://docs.gradle.org/current/userguide/jvm_test_suite_plugin.html。
3条答案
按热度按时间kokeuurv1#
Gradle有一个
source sets
的概念,这正是你在这里所需要的。你可以在 Java Plugin 文档中找到关于它的详细文档:https://docs.gradle.org/current/userguide/building_java_projects.html#sec:java_source_sets您可以在
build.gradle
中定义一个新的源集“integrationTest”字符串
这将自动创建新的 * configuration *
integrationTestCompile
和integrationTestRuntime
,您可以使用它们来定义新的 TaskintegrationTests
:型
参考:完整的工作示例可以在这里找到:https://www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-integration-testing/
igetnqfo2#
请将新创建的源文件夹也添加到build.gradle中的源集合中,如下所示:
字符串
干杯!干杯!
jrcvhitl3#
Gradle 7.3(2021年11月发布)中引入的声明式测试套件的新功能可以轻松解决这一需求,而无需所有底层的管道细节。要使用它,请将
jvm-test-suite
插件添加到构建脚本插件中。字符串
您可以在这里找到有关此功能的更多信息:https://docs.gradle.org/current/userguide/jvm_test_suite_plugin.html。