我在 sourceSets 中创建了一个自定义模块,称为 集成 用于保留我所有的集成测试用例。配置工作正常,但唯一的项目是 集成 文件夹 资源 文件夹不是 Test Resources Root
和 java 文件夹不是 Test Sources Root
.我想要 集成 文件夹 java 和资源看起来与 完全一样测试如下图所示的模块。
在上图中,如果您观察到 java 文件夹在测试文件夹下看起来绿色,但在集成文件夹下 java 文件夹看起来是蓝色的。
我除了:我想要 java 和 资源 中的文件夹集成 文件夹看起来与 的文件夹完全相同测试文件夹。 IE。如果您在屏幕截图中观察到我的 主要 和 集成 文件夹看起来完全一样。但是我想要 集成 文件夹使其看起来与 完全相同测试文件夹
我的毕业生sourceSets
看起来像这样
sourceSets {
integration {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
}
}
在 IntelliJ 中,我可以通过右键单击 来更改它。集成>java 文件夹 将目录设为> 测试源根目录 和
整合>资源文件夹 将目录设为> 测试资源根目录
但我想知道如何通过 build.gradle 实现这一点
谁能帮我解决这个问题
最佳答案
添加集成测试模块
→ https://ryanharrison.co.uk/2018/07/25/kotlin-add-integration-test-module.html
要添加 testIntegration 模块,您可以对 build.gradle 文件进行一些编辑以定义新的源集(IntelliJ 模块):
sourceSets {
testIntegration {
java.srcDir 'src/testIntegration/java'
kotlin.srcDir 'src/testIntegration/kotlin'
resources.srcDir 'src/testIntegration/resources'
compileClasspath += main.output
runtimeClasspath += main.output
}
}
您还必须定义一个新任务来运行集成测试,将其指向 testIntegration 源集的类和类路径,而不是从 test 继承的默认值:configurations {
testIntegrationImplementation.extendsFrom testImplementation
testIntegrationRuntime.extendsFrom testRuntime
}
task testIntegration(type: Test) {
testClassesDirs = sourceSets.testIntegration.output.classesDirs
classpath = sourceSets.testIntegration.runtimeClasspath
}
如果您使用“自动为空内容根目录创建目录”选项运行 Gradle,您应该会看到创建了一个新模块。不过,您可能会注意到一个问题,新模块未在 IntelliJ 中标记为测试模块。您可以手动执行此操作,但每次运行 Gradle 时都会重置。要覆盖这一点,您可以应用想法插件并添加新源集的源目录:idea {
module {
testSourceDirs += project.sourceSets.testIntegration.java.srcDirs
testSourceDirs += project.sourceSets.testIntegration.kotlin.srcDirs
testSourceDirs += project.sourceSets.testIntegration.resources.srcDirs
}
}
关于java - 如何基于gradle进行资源和java文件夹测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65726566/