用于 Spring Boot 中测试的 Gradle 命令行参数

Posted

技术标签:

【中文标题】用于 Spring Boot 中测试的 Gradle 命令行参数【英文标题】:Gradle Command-Line Arguments for tests in Spring Boot 【发布时间】:2020-01-17 06:50:33 【问题描述】:

我想将参数传递给 Gradle 测试(覆盖 application.properties 中的某些属性)。

有一种方法可以在执行 bootRun 时传递参数。检查例如https://www.baeldung.com/spring-boot-command-line-arguments:

./gradlew bootRun -Pargs=--some.property=changedvalue

但我想在测试中这样做,例如:

./gradlew test -Pargs=--some.property=changedvalue

【问题讨论】:

【参考方案1】:

为我工作。我将命令行参数传播到系统属性。

test 
    if (project.hasProperty('args')) 
        project.args.split(',').each 
            def (key, value) = it.replaceFirst('--', "").split('=')
            systemProperty ((String)key, (String)value)
        
    
    useJUnitPlatform()

下面的命令行可以正常工作。

./gradlew test -Pargs=--some.property=changedvalue

【讨论】:

以上是关于用于 Spring Boot 中测试的 Gradle 命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

使用 AttributeConverter 的 Spring Boot 测试不适用于 Maven 测试

用于集成测试的 Spring Boot @LocalServerPort 的 DotNet 替代方案

Spring Boot 中的单元测试

Spring Boot 测试容器

单元测试 Spring Boot 应用服务层

Spring Boot 单元测试示例