当前位置: 首页 > 知识库问答 >
问题:

在Amazon和Codeship上测试失败

朱宜
2023-03-14

在Groovy中使用Dropbox和GoogleDrive构建应用程序,测试运行良好。

代码:

 def "It instantiates and configures the googleAuthorizationCodeFlowBuilder component"() {
         given:
         def ctx = grailsApplication.mainContext
         GoogleAuthorizationCodeFlow.Builder builder = ctx.googleAuthorizationCodeFlowBuilder

         expect:
 }

然而,在Codeship和Amazon上运行时,测试失败:

消息:创建名为“googleAuthorizationCodeFlowBuilder”的bean时出错:bean的实例化失败;嵌套异常为org . spring framework . beans . bean instantiation exception:无法实例化bean类[com . Google . API . client . Google API . auth . oauth 2 . googleauthorizationcodeflow $ Builder]:构造函数引发了异常;嵌套异常是java.lang.NullPointerException

|号线方法-

|1075|org.springframework.beans.factory.support.AbstractAutowireCapableBean工厂中的自动构建器

/*东西*/

org . Apache . catalina . core . container base $ start child | 1549 | call in ' ' | 262 | run。。。。。。。。。。。。。。in Java . util . concurrent . future task | 1145 | run worker in Java . util . concurrent . thread pool executor | 615 | run。。。。。。。。。。。。。。在Java . util . concurrent . threadpoolexecutor $ worker ^ 745 |在java.lang.Thread中运行

由BeanInstanceationException引起:无法实例化bean类[com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder]:构造函数引发异常;嵌套异常是java.lang.NullPointerException-

|121|实例化org.springframework.beans.factory.support.简单实例化策略|277|自动生成构造 . . . . . . org.springframework.beans.factory.support.构造解析器|1075|自动生成构造org.springframework.beans.factory.support.抽象自动生成能力豆工厂|979|createBeanInance . . . . . . ”|487|doCreateBean in”|123|doCreateBean . . . . . . . . . 在java.util.concurrent.ThreadPoolExec的

/*更多堆栈跟踪*/

| 615 |跑。。。。。。。。。。。。。。在Java . util . concurrent . threadpoolexecutor $ worker ^ 745 |在java.lang.Thread中运行

googleAuthorizationflowBuilder bean只创建一个GoogleAuthorizationCodeFlow.Builder(我使用Google java API)。

编辑1:我通过修改doWithSpring在我的机器上重现了错误:

def doWithSpring = {
        def config = application.config
        String googleSecret = getConfigValue(config, 'storage.google.secret')
        String googleAppId = null//getConfigValue(config, 'storage.google.appId')
        String appName = getConfigValue(config, 'storage.appName')

        if (!ConfigUtils.optional(config,'storage.google.disabled')) {
            googleNetHttpTransport(NetHttpTransport)
            googleJsonFactory(JacksonFactory)
            googleCredentialsBuilder(GoogleCredential.Builder) {
                transport = googleNetHttpTransport
                jsonFactory = googleJsonFactory
            }
       googleAuthorizationCodeFlowBuilder(GoogleAuthorizationCodeFlow.Builder, ref('googleNetHttpTransport'), ref('googleJsonFactory'),
                googleAppId, googleSecret, [DRIVE])
        }
    }

编辑2:这个错误似乎是在AppId为空时发生的...问题是为什么它在云上是空的,而在我的机器上不是...

共有1个答案

弓嘉纳
2023-03-14

好的,似乎用于初始化Config.groovy值的环境变量没有在代码库项目上设置,导致了前面提到的错误。

缺少的环境变量已在Codeship上初始化,现在一切正常。

 类似资料:
  • 我试图在非自定义端口(例如25565)上使用命令启动minecraft服务器: java-jar craftbukkit.jar [12:24:27 WARN]:要启动具有更多ram的服务器,请将其启动为“java-xmx1024m-xms1024m-jar minecraft_server.jar” [12:24:27信息]:正在加载属性 [12:24:27信息]:默认游戏类型:生存 [12:2

  • 我在laravel中有一个资源控制器来管理我的用户。这将创建一个更新用户信息的路由,该路由使用HTTP PUT方法接收请求。 这里显示命令输出: 它在我的web浏览器上正常工作,但当我尝试使用codeception运行测试并提交表单时,我得到一个method not allowed异常,测试失败。 我试图了解为什么会发生这种情况,这似乎是codeception提出的请求。该请求是通过POST而不是

  • 我不知道为什么,我的spring boot测试在eclipse中以junit形式运行时成功了,但当我执行以下命令时失败了: 这是我的建筑。格雷德尔: 运行gradle命令后,由于各种原因,我的所有测试都失败了,主要原因是无法创建bean并将它们自动连接到测试类。 下面是一个测试示例: 这就是构建/测试失败的原因: 我很感激能得到的帮助,我已经在这件事上耽搁了好几个小时了。 更新这是我的gradle

  • 行动时刻 - 使用JRadius Simulator在FreeRADIUS上测试EAP 我们将首先为JRadius Simulator准备FreeRADIUS环境,然后配置JRadius Simulator以测试EAP身份验证。 准备FreeRADIUS FreeRADIUS可以处理EAP之前最重要的事情就是什么。 当你无所作为时,EAP将发挥最佳作用。 FreeRADIUS作者确保默认配置支持E

  • 问题内容: 我在JBoss eap 6.1服务器上运行Arquillian测试(由jenkins作业启动)时遇到问题。在JBoss 7.1.1服务器上运行测试没问题,但是当我切换到eap 6.1时,所有测试都收到以下异常: 如果我在本地计算机上的EAP 6.1服务器上运行测试,则一切工作正常(配置相同,因此不会出现问题)。 有谁知道可能是什么问题? Arquillian依赖项: managed 问