2012-04-24 27 views
5

Tôi đang phát triển một plugin grails, nhưng khi tôi cố gắng tạo một thử nghiệm tích hợp cho một dịch vụ tôi nhận được lỗi nàygrails Phát triển cắm "Không đậu có tên là 'transactionManager' được định nghĩa" trong thử nghiệm hội nhập

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 

Tôi có thể giải quyết nó bằng cách nào?

+0

Bạn đang thử nghiệm gì? Đơn vị? Hội nhập? Bộ điều khiển? Thư mục của bạn là gì trong vấn đề trong grails. Tôi đã không có nhiều thành công với thử nghiệm trong grails ... – marko

+0

Tôi đã cố gắng tạo một thử nghiệm tích hợp cho một Dịch vụ ... Dịch vụ vẫn nằm trong thư mục chuẩn của grails, kiểm tra tích hợp vẫn nằm trong thư mục chuẩn của grails ... lỗi là sau khi tôi đã khởi chạy 'grails test-app: integration', tôi cũng đã chú thích lớp với @TestMixin (GrailsUnitTestMixin) – rascio

+0

Nếu bạn đang tạo một bài kiểm tra tích hợp, bạn phải đặt nó vào một thư mục được gọi là tích hợp, theo thử nghiệm/tích hợp tôi nghĩ. – marko

Trả lời

18

Tôi tin rằng điều này có thể xảy ra nếu bạn đã gỡ cài đặt Hibernate và bạn không chỉ định một trình quản lý giao dịch khác. Các dịch vụ Grails theo mặc định là giao dịch và Hibernate là những gì quản lý giao dịch đó. Nếu bạn không sử dụng Hibernate, bạn có thể đặt dịch vụ của mình thành không giao dịch với def transactional = false