Grails/Gradle 测试在非本地 CI 上失败

Posted

技术标签:

【中文标题】Grails/Gradle 测试在非本地 CI 上失败【英文标题】:Grails/Gradle test fails on CI not locally 【发布时间】:2017-10-09 13:44:07 【问题描述】:

使用gradle test 在本地(OSX)运行我们的测试,运行/通过就好了。在我们的 CI(Ubuntu 16.04 LTS)机器上,我们遇到了应用程序上下文问题

java.lang.IllegalStateException: Could not find ApplicationContext, configure Grails correctly first
        at grails.util.Holders.getApplicationContext(Holders.java:97)

检查版本表明它们在两台机器上是相同的

/grailsw -version
| Grails Version: 3.2.8
| Groovy Version: 2.4.7
| JVM Version: 1.8.0_131


./gradlew -version
Gradle 3.5
Build time:   2017-04-10 13:37:25 UTC
Revision:     b762622a185d59ce0cfc9cbc6ab5dd22469e18a6
Groovy:       2.4.10
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_131 (Oracle Corporation 25.131-b11)
OS:           Linux 3.13.0-100-generic amd64`

还有其他一些我应该研究的依赖项吗?

【问题讨论】:

【参考方案1】:

我认为原因在于您开始测试的方式。请使用本地 Gradle 包装器而不是机器本身安装的版本,以确保这两个构建之间的一致性 - here 你可以找到更多信息。

所以基本上不是运行gradle test 而是使用./gradlew test 运行它

【讨论】:

以上是关于Grails/Gradle 测试在非本地 CI 上失败的主要内容,如果未能解决你的问题,请参考以下文章

Grails gradle“具有该名称的任务已经存在”

使用 GitLab CI 在本地运行测试?

Travis CI AVD上的Android Instrumentation测试失败,但在本地模拟器上工作

用于 Grails 2.0 的 Grails/Gradle 插件

Grails & gradle:插件管理

Swift 包资源颜色在 CI 测试用例中返回为零。但是在本地测试用例中返回正常