2013-02-28 8 views
1

로컬로 전달되는 Spock 기반 유닛 테스트 세트를 가지고 있는데, 다음 두 가지 예외가 CI (Jenkins) 서버에 기록됩니다. 일부 테스트는 두 예외 모두에서 실패하지만 일부 테스트는 첫 번째 테스트에서만 실패합니다.Grails Spock 유닛 테스트는 국지적으로 통과하지만 CI 환경에서는 실패합니다.

모든 테스트는이 예외와 함께 실패 :에 대한 제약을 테스트하는이 단위 테스트에서

java.lang.NullPointerException: Cannot invoke method isActive() on null object 
at grails.test.mixin.support.GrailsUnitTestMixin.shutdownApplicationContext(GrailsUnitTestMixin.groovy:232) 
at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:138) 
at org.spockframework.runtime.extension.builtin.JUnitFixtureMethodsExtension$FixtureType$FixtureMethodInterceptor.intercept(JUnitFixtureMethodsExtension.java:145) 
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:84) 
at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:138) 

, 내가 뭘 모든입니다 :

Account field name is nullable using null(com.vsnap.site.entities.account.organization.OrganizationSpec) 
| 
java.lang.IllegalStateException: Already value [[email protected]] for key [[email protected]] bound to thread [main] 
at org.grails.datastore.mapping.core.DatastoreUtils.bindSession(DatastoreUtils.java:337) 
at grails.test.mixin.domain.DomainClassUnitTestMixin.connectDatastore(DomainClassUnitTestMixin.groovy:108) 
at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:138) 
at org.spockframework.runtime.extension.builtin.JUnitFixtureMethodsExtension$FixtureType$FixtureMethodInterceptor.intercept(JUnitFixtureMethodsExtension.java:145) 
at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:84) 
at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:138) 
at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:138) 
at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:138) 

일부는 처음 이외에이 실패 도메인 객체 :

+0

문제는 필자가 docs에 따라 종속성을 올바르게 정의하지 않았다는 것입니다. http://grails.org/plugin/spock – Rhysyngsun

+0

좀 더 구체적으로 알려주시겠습니까? 나는 의존성을 올바르게 정의한 것처럼 보이지만 IntelliJ (테스트는 내 콘솔에서 잘 실행 됨)를 통해 테스트를 실행할 때 비슷한 문제가 발생합니다. –

+0

내 명령 행에서 프로젝트 폴더에 'grails clean'을 실행하면 문제가 해결 된 것 같습니다. 무엇이 손상되었는지는 확실치 않지만 문제가있는 것 같습니다! –

답변

0

위에서 주석을 남기 자마자 스택 추적이 사실임을 발견했습니다. y는 내게 뭔가 유용한 얘기하려고 :) 문제는 동일한 라이브러리가 IntelliJ에 의해 내 사건에 뽑아되고 두 인스턴스가 청취자와 함께 자신을 등록하고있다 .... 내 경우에 Maven은 grails-testing -plugin 그리고 또한 IntelliJ는 의존성 트리 (모듈 설정)에 같은 jar를 포함하는 grails 폴더를 가지고있었습니다. 이들 중 하나를 삭제하면 문제가 해결되었습니다. 다음 번에 처리합니다.

관련 문제