도메인 클래스 및 서비스 등이 포함 된 플러그인 프로젝트가 있습니다. 플러그인 프로젝트를 사용하는 응용 프로그램 프로젝트가 있습니다. 이것은 일반적인 패턴입니다. 응용 프로그램 컨텍스트가 없으므로 통합 테스트 (DB에 충돌)는 플러그인 프로젝트에서 실행되지 않으므로 기본 응용 프로그램 프로젝트에서 통합 테스트를 실행합니다."ApplicationContext를 찾을 수 없으므로 먼저 Grails를 올바르게 설정하십시오"
이/*@TestFor(Site)*/
class SiteIntegrationSpec extends IntegrationSpec {
static transactional=false;
def setup() {
}
def cleanup() {
}
void "test something"() {
Site site
when:
site = Site.get(1L)
then:
site.name == "root"
}
}
이
이 사이트는 이와 유사한 단지 도메인 객체된다 : TestFor (사이트)에 그것을 시도 유엔 - 주석 :
class Site {
String name
// some more fields here
}
참고
우리는 매우 간단한 통합 테스트를 또한 - 같은 오류.DB를 보면 사이트 항목이 있습니다.
좋아, 다른 단서를 찾았습니다. SiteIntegrationSpec 테스트가 작동하는 데 사용되었습니다. 두 번째 테스트 인 ParamIntegrationSpec을 추가하기 전에 작동했습니다. 우리는 thusly 히 자신에 이러한 테스트 중 하나를 실행하는 경우 :
test-app --stacktrace --verbose *IntegrationSpec
SiteIntegrationSpec 시험 :
test-app --stacktrace --verbose ParamIntegrationSpec
는
test-app --stacktrace --verbose SiteIntegrationSpec
이
작동 작동하지만 우리는 그들 모두를 실행하는 경우 항상 위의 예외와 함께 실패합니다.
어떤 아이디어가 있습니까?
전체 스택 추적 :
java.lang.IllegalStateException: Could not find ApplicationContext, configure Grails correctly first
at grails.util.Holders.getApplicationContext(Holders.java:97)
at grails.test.spock.IntegrationSpec.$spock_initializeSharedFields(IntegrationSpec.groovy:41)
주 2 :
test-app --stacktrace --verbose -integration
는 사이트 테스트에서 동일한 오류를 제공합니다.
왜 이런 일이 발생하는지 정확히 알 수 없지만 다른 사양은 다른 사양을 오염시키는 무언가를하고 있습니다. http://naleid.com/blog/2012/05/22/fixing-grails-tests-that-pass-in-isolation-but-fail-when-run-as-a-suite – user1690588
다음을 시도해보십시오. http : //스택 오버플로.com/questions/24957901/grails-integrationspec-illegalstateexception – user1690588