使用“gradle test”测试 Grails 3 应用程序使用错误的环境配置

Posted

技术标签:

【中文标题】使用“gradle test”测试 Grails 3 应用程序使用错误的环境配置【英文标题】:Testing Grails 3 app with 'gradle test' uses wrong environment config 【发布时间】:2015-08-17 23:13:18 【问题描述】:

我有一个 Grails 3 应用程序,我正在尝试为其配置一个嵌入式数据存储以进行功能测试。我有特定于“测试”环境的数据存储配置。

当我运行“grails test-app”时,应用程序连接到正确的数据存储并且我的功能测试通过了。

当我尝试使用“gradle test”测试应用程序时,它会尝试连接到开发环境的数据存储区并失败。

我已尝试通过将其添加到 build.gradle 来指定用于 gradle 测试任务的 Grails 环境:

test 
    String testEnvArg = '-Dgrails.env=test'

    if (jvmArgs) 
        jvmArgs.add(testEnvArg)
     else 
        jvmArgs = [testEnvArg]
    

但行为似乎没有改变。

如何让 gradle 'test' 任务使用正确的 Grails 环境配置?

【问题讨论】:

【参考方案1】:

您必须指定环境:

gradle -PgrailsEnv=test test

【讨论】:

【参考方案2】:

要在生产环境和 gradle wrapper 下启动运行:

./gradlew -Dgrails.env=production bootRun

以及要求的测试环境:

./gradlew -Dgrails.env=test bootRun

【讨论】:

已通过 grails 3.1.14 和 gradle 2.14.1 确认

以上是关于使用“gradle test”测试 Grails 3 应用程序使用错误的环境配置的主要内容,如果未能解决你的问题,请参考以下文章

Grails 2.3 使用 IVY 解析器进行单元测试

从 Intellij IDEA 开始的慢速 Grails 测试

您如何安装和使用 grails 测试覆盖率?

在Grails 3中运行Grails功能测试

使用 Grails 对域类进行单元测试

如何在 Grails 单元测试中使用 Spock 模拟 passwordEncoder