如何向 Gradle 添加新的源集?
2022-08-31 09:22:14
我想将集成测试添加到我的 Gradle 内部版本(版本 1.0)中。它们应该与我的正常测试分开运行,因为它们需要将 Web 应用部署到 localhost(它们测试该 web 应用)。测试应该能够使用在我的主源代码集中定义的类。如何实现此目的?
我想将集成测试添加到我的 Gradle 内部版本(版本 1.0)中。它们应该与我的正常测试分开运行,因为它们需要将 Web 应用部署到 localhost(它们测试该 web 应用)。测试应该能够使用在我的主源代码集中定义的类。如何实现此目的?
2021年更新:
8年来发生了很多变化。Gradle仍然是一个很棒的工具。现在,文档中有一整节专门用于配置集成测试。我建议您立即阅读文档。
原始答案:
这花了我一段时间才弄清楚,在线资源不是很好。所以我想记录我的解决方案。
这是一个简单的 gradle 构建脚本,除了主源代码集和测试源代码集外,它还具有 intTest 源代码集:
apply plugin: "java"
sourceSets {
// Note that just declaring this sourceset creates two configurations.
intTest {
java {
compileClasspath += main.output
runtimeClasspath += main.output
}
}
}
configurations {
intTestCompile.extendsFrom testCompile
intTestRuntime.extendsFrom testRuntime
}
task intTest(type:Test){
description = "Run integration tests (located in src/intTest/...)."
testClassesDir = project.sourceSets.intTest.output.classesDir
classpath = project.sourceSets.intTest.runtimeClasspath
}
以下是我如何在不使用.configurations{ }
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_6
sourceSets {
integrationTest {
java {
srcDir 'src/integrationtest/java'
}
resources {
srcDir 'src/integrationtest/resources'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}
task integrationTest(type: Test) {
description = "Runs Integration Tests"
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath += sourceSets.integrationTest.runtimeClasspath
}
测试使用:Gradle 1.4 和 Gradle 1.6