2015-03-19 3 views
0

Построение приложения с помощью Dropbox и Google Drive в Groovy, тесты проходят нормально.Тест не работает на Amazon и Codeship

Код:

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

     expect: 
} 

При работе на Codeship и Amazon, однако, тест не пройден:

Сообщение: Ошибка при создании боб с именем 'googleAuthorizationCodeFlowBuilder': Инстанцирование боба не удалось; Вложенное исключение - org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр класса bean [com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow $ Builder]: Конструктор выбрал исключение; вложенное исключение java.lang.NullPointerException

Линия | Метод - >> 285 | autowireConstructor в org.springframework.beans.factory.support.ConstructorResolver

| 1075 | autowireConstructor в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory

/* материал */

org.apache.catalina.core.ContainerBase $ StartChild | 1549 | звонок в '' | 262 | запустить . , , , , , , , , , , , , , в java.util.concurrent.FutureTask | 1145 | runWorker в java.util.concurrent.ThreadPoolExecutor | 615 | запустить . , , , , , , , , , , , , , в java.util.concurrent.ThreadPoolExecutor $ Worker ^ 745 | работать в java.lang.Thread

Вызванный BeanInstantiationException: Не удалось создать экземпляр класса боб [com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow $ Builder]: Конструктор бросил исключение; вложенное исключение - java.lang.NullPointerException - >> 163 | instantiateClass в org.springframework.beans.BeanUtils

| 121 | создать экземпляр в org.springframework.beans.factory.support.SimpleInstantiationStrategy | 277 | autowireConstructor. , , , , , в org.springframework.beans.factory.support.ConstructorResolver | 1075 | autowireConstructor в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory | 979 | createBeanInstance. , , , , , in '' | 487 | doCreateBean in '' | 123 | doCreateBean. , , , , , , , , в java.util.concurrent.ThreadPoolExecutor

/* более StackTrace */

| 615 | запустить . , , , , , , , , , , , , , в java.util.concurrent.ThreadPoolExecutor $ Worker ^ 745 | работать в java.lang.Thread

googleAuthorizationflowBuilder боб только создает GoogleAuthorizationCodeFlow.Builder (я использую Java API Google).

EDIT 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]) 
     } 
    } 

EDIT 2: Мне кажется, что ошибка произойдет конкретно, когда AppId равна нулю ...Вопрос в том, почему это null на облаке, а не на моей машине ...

ответ

0

Хорошо, кажется, что переменные окружения, используемые для инициализации значений Config.groovy, не были установлены в проекте Codebase, в результате чего вышеупомянутая ошибка.

Отсутствующие переменные среды были инициализированы на Кодексе, и теперь все отлично работает.

+0

Ахой, Марко из экипажа Кодекса. Я только что видел сообщение и хотел спросить, исправили ли вы это? Если нет, не стесняйтесь обращаться к нам через наш in-app messenger или [email protected]! – mlocher

+0

@Marko Это исправлено! Просто глупая ошибка. Пропущенные переменные среды были инициализированы, и теперь все отлично работает. – Heschoon

+0

Отлично, если у вас есть другие вопросы, не стесняйтесь обращаться к нам! Ура! :) – mlocher