繁体   English   中英

使用jeeunit时,每次测试后如何重置数据库?

[英]How to reset database after each test when using jeeunit?

我想知道是否有人在使用jeeunit(或任何其他Java ee应用程序测试框架)进行每次测试之前成功清除数据库内容?

我已尝试使用jeeunit文档中所述的@Transactional批注,在该批注中将回滚所有已完成的事务。 但是,在某些情况下(会话被清除),所做的更改会在测试之间持续存在,从而导致测试污染。

任何帮助/指导表示赞赏!

既然您提到了“任何其他Java ee应用程序测试框架”,我建议您研究Arquillian Persistence Extension,以对Java EE应用程序进行单元测试。 您可以在此处找到有关如何使用它的教程: http : //www.softwarepassion.com/java-ee-6-testing-with-arquillian-persistence-extension/

有关Arquillian本身的更多信息,请点击此处

DBUnit旨在解决这个确切的问题-他们的网站在这里

Spring框架的AbstractTransactionalJUnit4SpringContextTests是另一个好的开始。

您可以通过在连接执行之前设置autoCommit(false)来自己完成操作,并在代码运行后回滚。

我的解决方案是将jeeunit与h2 db一起使用,并在每次测试之前通过本机SQL强制删除数据库中的所有行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM