【发布时间】:2011-04-07 22:00:10
【问题描述】:
我已将我的测试类注释如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:WebContent/WEB-INF/applicationContext.xml", "file:WebContent/WEB-INF/context-aspects.xml"})
@Transactional
public class MyTest {
}
但是,在执行测试时,测试数据库突然充满了值,尽管启用了@Transactional 并且我可以在日志中读取以下内容:
INFO: Began transaction (4): transaction manager [org.springframework.orm.hibernate3.HibernateTransactionManager@669aa3f3]; rollback [true]
07.04.2011 23:57:33 org.springframework.test.context.transaction.TransactionalTestExecutionListener endTransaction
INFO: Rolled back transaction after test execution for test context ...
任何想法为什么不执行测试用例后的实际回滚?
更新:如果我使用的是 HSQLDB,我没有这些问题 - 那是不是 mysql 的问题?
【问题讨论】:
-
你用的是什么数据库引擎?
-
如果是 MySQL,您使用哪种类型:MyISAM 还是 InnoDB?
-
我正在使用 MySQL InnoDB。在另一个项目中,它使用相同的数据库,但我无法弄清楚配置的差异在哪里。
标签: java unit-testing spring testing junit