Разработка плагина grails В интеграционном тесте не определен bean-компонент с именем «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

как я могу это решить?


person rascio    schedule 24.04.2012    source источник
comment
Что ты тестируешь? Ед. изм? Интеграция? Контроллер? В какой папке находятся ваши тесты - дело в grails. У меня не было большого успеха с тестированием в grails ...   -  person marko    schedule 24.04.2012
comment
Я попытался создать интеграционный тест для Сервиса ... Сервис остается в стандартной папке grails, тест интеграции остается в стандартной папке grails ... ошибка возникает после того, как я запустил тестовое приложение grails: интеграции ', я также аннотировал класс с помощью @TestMixin (GrailsUnitTestMixin)   -  person rascio    schedule 24.04.2012
comment
Если вы создаете интеграционный тест, вы должны поместить его в папку с именем integration, я думаю, в разделе test / integration.   -  person marko    schedule 24.04.2012
comment
grails автоматически создает его там   -  person rascio    schedule 24.04.2012


Ответы (1)


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

person Jarred Olson    schedule 24.04.2012