2012-04-24 1 views
5

Я разрабатываю Grails плагин, но когда я пытаюсь создать интеграционный тест для службы я получаю эту ошибкуРазвитие Grails не плагин «Нет боб с именем„TransactionManager“определяется» в тесте интеграции

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 ... – marko

+0

Я попытался создать тест интеграции для Сервиса ... Служба остается в стандартной папке grails, тест интеграции остается в стандартной папке grails ... ошибка после того, как я запустил «grails test-app: integration», я также аннотировал класс с помощью @TestMixin (GrailsUnitTestMixin) – rascio

+0

Если вы создаете интеграционный тест, вы должны поместить его в Я думаю, папка называется интеграцией, под тестированием/интеграцией. – marko

ответ

18

Я считаю, что это может произойти, если вы удалили Hibernate и не указали другого менеджера транзакций. Услуги Grails по умолчанию являются транзакционными, а Hibernate - это то, что управляет этой транзакцией. Если вы не используете Hibernate, вы можете указать, что ваш сервис не является транзакционным: def transactional = false

Смежные вопросы