セレンテスト後のデータベースクリーンアップ
-
10-10-2019 - |
質問
Mavenを使用してSelenium(junit4)テストの束を実行した後、データベースのクリーンアップ(挿入したものなどを削除)を実行したいと思います。 Tapestry/Spring/HibernateとLegacyデータベースで実行されている古いプロジェクトです。 anでクリーンアップをしたいです @After
注釈付き方法 - しかし、DAO/Managers/SessionFactoryの注入は機能しません。
テストは次のようになります:私は実行します(mvn jetty:run-war
)1つのコンソールのアプリ、別のコンソールでテストを開始します(mvn test
) - localhost:8080でアプリにアクセスします。
解決
いくつかの可能なアプローチ:
- 使用する dbunit, 、データベースをテスト間でnking状態に戻すように設計されています。
- aでデータベーストランザクションで各テストをラップします
try{} finally{}
最終的にトランザクションをロールバックする場所をブロックします。 - テストにはデータベースを厳密に使用し、心配しないでください。テストに毎回ユニークに識別された /名前の値を作成してください。そうすれば、競合がないようにしますが、それ以外の場合はアクションを起こさないでください。
他のヒント
使いたいです
@transactional
メソッド宣言より上のアノテーション。各テストの後にロールバックを実行します。それは私にとってうまく機能します。
例えば:
@Test
@Transactional
public void simpleTest(){
// your logic here
}
所属していません StackOverflow