2012-04-24 3 views
5

가 나는 Grails의 플러그인을 개발하고 있어요 통합 테스트에 " '의 transactionManager'라는 이름의 빈 정의"하지만이 서비스에 대한 통합 테스트를 만들려고 할 때이 오류개발 Grails의

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'aService': Cannot resolve reference to bean 'transactionManager' while setting bean property 'transactionManager'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined 
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:232) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:61) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:223) 
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:29) 
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:300) 
at org.junit.runners.Suite.runChild(Suite.java:129) 
at org.junit.runners.Suite.runChild(Suite.java:24) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:232) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:61) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:223) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:300) 
at _GrailsTest_groovy$_run_closure4.doCall(_GrailsTest_groovy:290) 
at _GrailsTest_groovy$_run_closure2.doCall(_GrailsTest_groovy:249) 
at _GrailsTest_groovy$_run_closure1_closure21.doCall(_GrailsTest_groovy:195) 
at _GrailsTest_groovy$_run_closure1.doCall(_GrailsTest_groovy:184) 
at TestApp$_run_closure1.doCall(TestApp.groovy:82) 
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined 
... 24 more 
받고 있어요

어떻게 해결할 수 있습니까?

+0

무엇을 테스트하고 있는가? 단위? 완성? 제어 장치? Grails에서 어떤 테스트의 폴더가 중요합니까? 나는 grails 테스트에서 많은 성공을 거두지 못했습니다 ... – marko

+0

서비스에 대한 통합 테스트를 만들려고했습니다 ... 서비스는 grails의 표준 폴더에 있으며 통합 테스트는 다음과 같은 표준 폴더에 있습니다. grails ... 오류는 'grails test-app : integration'을 실행 한 후입니다. @TestMixin (GrailsUnitTestMixin) – rascio

+0

통합 테스트를 작성하는 경우 클래스를 통합이라는 폴더, 테스트/통합하에 있다고 생각합니다. – marko

답변

18

나는 이것이 Hibernate를 제거하고 다른 트랜잭션 관리자를 지정하지 않은 경우에 발생할 수 있다고 생각한다. Grails 서비스는 기본적으로 트랜잭션이고 Hibernate는 그 트랜잭션을 관리한다. 당신이 Hibernate를 사용하지 않는다면 당신은 당신의 서비스가 non-transactional이되도록 설정할 수있다. def transactional = false