Selenium测试后的数据库清理

时间:2011-01-13 14:02:28

标签: java hibernate spring selenium selenium-webdriver

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

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

2 个答案:

答案 0 :(得分:6)

几种可能的方法:

  1. 使用dbunit,用于在测试之间将数据库返回到已知状态。
  2. 使用try{} finally{}块在数据库事务中包装每个测试,最后回滚事务。
  3. 严格使用数据库进行测试,不用担心。每次使测试创建唯一标识/命名值,这样您就不会发生冲突,但不会采取任何操作。

答案 1 :(得分:0)

我宁愿使用

  

@Transactional

上述方法声明的anotation。每次测试后都会运行回滚。这对我来说可以。

例如:

@Test
@Transactional  
public void simpleTest(){    
    // your logic here     
}