如何强制Gradle在“main”中选择测试?
我们在如何强制Gradle在“main”中选择测试?,gradle,Gradle,我们在main中有一些测试(因此它们可以内置到服务中并从服务中运行)。最新的渐变默认为不将main中的源识别为测试代码 我想我可以使用Nebula Facets插件,但以下内容也不能解决这个问题: facets { functionalTest { parentSourceSet = 'main' includeInCheckLifecycle = false } } 以下是如何覆盖srcDirs: facets { functionalTest { inc
main
中有一些测试(因此它们可以内置到服务中并从服务中运行)。最新的渐变默认为不将main
中的源识别为测试代码
我想我可以使用Nebula Facets插件,但以下内容也不能解决这个问题:
facets {
functionalTest {
parentSourceSet = 'main'
includeInCheckLifecycle = false
}
}
以下是如何覆盖
srcDirs
:
facets {
functionalTest {
includeInCheckLifecycle = false
}
}
sourceSets {
functionalTest {
java {
srcDirs = ["${projectDir}/src/main/java"]
}
resources {
srcDirs = ["${projectDir}/src/main/resources"]
}
}
}
如果您确实需要使用
src/main/java
中的测试,那么您不需要额外的源代码集
相反,您需要配置测试任务,以便它使用main
源集类路径
以下是使用Kotlin DSL和任务配置避免配置此类测试任务的示例:
val mainTest = tasks.register<Test>("mainTest") {
useJUnitPlatform()
description = "Run tests from main"
group = "verification"
testClassesDirs = sourceSets["main"].output.classesDirs
classpath = sourceSets["main"].runtimeClasspath
}
tasks.named("check").configure {
dependsOn(mainTest)
}
val mainTest=tasks.register(“mainTest”){
useJUnitPlatform()
description=“从主服务器运行测试”
group=“验证”
testClassesDirs=sourceset[“main”].output.classesDirs
classpath=sourceset[“main”]。运行时类路径
}
任务。命名为(“检查”)。配置{
dependsOn(主测试)
}
code会很有帮助。