开发者

Database cleanup after Selenium tests

After I run a bunch of Selenium (jUnit4) tests using Maven, I'd like to do a database clean-up (remove things they inserted etc). It's an older project running on Tapestry/Spring/Hibernate and a legacy database. I'd like to do the clean up in an @After annotated method - but injecting of DAO's/Managers/SessionFactory doesn't work.

The testing goes like this: I run (mvn jetty:run-war) the app in one console, and start the testing in another console (mvn test) - it accesses the 开发者_JAVA技巧app on localhost:8080.


Several possible approaches:

  1. Use dbunit, which is designed to return a database to a know state between tests.
  2. Wrap each test in a database transaction with a try{} finally{} block where the finally rolls back the transaction.
  3. Use a database strictly for testing and don't worry about it. Make your tests create uniquely identified / named values each time so you don't have conflicts, but otherwise don't take any action.


I would rather use

@Transactional

anotation above method declaration. It runs rollback after each test. It works fine for me.

For example:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜