我遇到了一个测试多个服务的集成测试的问题.我不得不禁用事务以使测试工作而没有任何与事务相关的运行时错误.集成测试在单独运行时工作正常但在与其他启用了事务的测试一起运行时,会产生此运行时错误:
Running 48 integration tests... 43 of 48
Failure: Tests the happy case flow of MyService.(MyServiceSpec)
org.springframework.transaction.HeuristicCompletionException: Heuristic completion: outcome state is rolled back; nested exception is org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has bee
n marked as rollback-only
Caused by: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
... 4 more
Completed 43 integration tests, 1 failed in 0m 32s
Run Code Online (Sandbox Code Playgroud)
我得出结论,运行时发生的原因是因为使用事务的其他集成测试,因为我通过成功运行所有禁用事务的测试来测试它; 在使用事务启用的单个集成测试运行测试时失败.
如何在Grails中混合事务和非事务集成测试?
平台详情:
Grails-2.3.6 Windows 7 64位.JDK v6.