2012-04-24 61 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中遇到什么问题。我还没有与测试Grails中... – marko 2012-04-24 11:52:48

+0

成功的一个很大的我尝试为服务创建一个集成测试...服务停留在Grails中的标准文件夹,集成测试停留在标准文件夹Grails的......错误是我下水后“Grails的测试应用:集成”,我也标注了@TestMixin(GrailsUnitTestMixin)类 – rascio 2012-04-24 12:29:42

+0

如果要创建一个集成测试,你必须把它放在一个文件夹称为集成,我认为在测试/集成下。 – marko 2012-04-24 12:49:04

回答

18

我相信,如果你已经卸载了Hibernate和你没有指定其他事务管理器可能发生这种情况。默认情况下,Grails服务是事务性的,Hibernate是管理该事务的东西。如果你不使用Hibernate你可以设置你的服务成为非事务与def transactional = false