You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在build.gradle.kts中获取Gradle的--tests命令行参数值

Gradle 构建脚本获取 --tests 参数的实现方法

--tests 是 Gradle 测试任务的专有配置参数,不属于全局项目属性或系统属性,因此直接查找这两类属性无法获取取值,需要从 Test 任务的测试过滤配置中读取,具体实现如下:

方法1:直接在Test任务配置块中读取

在 build.gradle.kts 的 Test 任务通用配置块中直接获取参数值:

import org.gradle.api.tasks.testing.Test

tasks.withType<Test> {
    // 获取所有通过--tests传入的测试匹配规则
    val testPatterns = filter.includePatterns
    
    if (testPatterns.isNotEmpty()) {
        // 仅传入单个--tests参数时,取第一个元素即为目标测试用例路径
        val singleTest = testPatterns.first()
        println("当前指定运行的测试用例:$singleTest")
        
        // 此处可添加自定义逻辑,比如调整测试日志级别、跳过前置依赖任务等
    }

    // 保留原有Test任务配置
    useJUnitPlatform()
    testLogging {
        events("PASSED", "SKIPPED", "FAILED")
    }
}

方法2:全局存储供其他配置调用

如果需要在Test任务之外的其他逻辑中使用该参数,可以先存入扩展属性:

// 定义全局扩展变量存储测试匹配规则
var targetTestPattern: String? = null

tasks.withType<Test> {
    val patterns = filter.includePatterns
    if (patterns.isNotEmpty()) {
        targetTestPattern = patterns.first()
    }
}

// 其他任务/配置块可直接调用该变量
tasks.register("checkSingleTest") {
    doLast {
        if (targetTestPattern != null) {
            println("当前为单测运行模式,目标用例:$targetTestPattern")
        } else {
            println("当前为全量测试运行模式")
        }
    }
}

验证方法

执行测试命令 ./gradlew test --tests com.example.MyTest 时,脚本即可正常获取到 com.example.MyTest 的字符串值,支持通配符格式的测试规则读取。

内容的提问来源于stack exchange,提问作者Franziskus Karsunke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 00:45:05