1

在我使用 Maven 运行一堆 Selenium (jUnit4) 测试后,我想做一个数据库清理(删除他们插入的东西等)。这是一个在 Tapestry/Spring/Hibernate 和遗留数据库上运行的旧项目。我想用带@After注释的方法进行清理 - 但注入 DAO/Managers/SessionFactory 不起作用。

测试是这样进行的:我在一个控制台中运行 ( mvn jetty:run-war) 应用程序,并在另一个控制台 ( mvn test) 中开始测试 - 它访问 localhost:8080 上的应用程序。

4

2 回答 2

6

几种可能的方法:

  1. 使用dbunit,它旨在将数据库返回到测试之间的已知状态。
  2. try{} finally{}使用finally 回滚事务的块将每个测试包装在数据库事务中。
  3. 严格使用数据库进行测试,不要担心。让您的测试每次都创建唯一标识/命名的值,这样您就不会发生冲突,否则不要采取任何行动。
于 2011-01-13T14:10:36.267 回答
0

我宁愿用

@Transactional

方法声明上面的注释。它在每次测试后运行回滚。这对我来说可以。

例如:

@Test
@Transactional  
public void simpleTest(){    
    // your logic here     
}
于 2016-12-07T07:50:55.413 回答