質問

Mavenを使用してSelenium(junit4)テストの束を実行した後、データベースのクリーンアップ(挿入したものなどを削除)を実行したいと思います。 Tapestry/Spring/HibernateとLegacyデータベースで実行されている古いプロジェクトです。 anでクリーンアップをしたいです @After 注釈付き方法 - しかし、DAO/Managers/SessionFactoryの注入は機能しません。

テストは次のようになります:私は実行します(mvn jetty:run-war)1つのコンソールのアプリ、別のコンソールでテストを開始します(mvn test) - localhost:8080でアプリにアクセスします。

役に立ちましたか?

解決

いくつかの可能なアプローチ:

  1. 使用する dbunit, 、データベースをテスト間でnking状態に戻すように設計されています。
  2. aでデータベーストランザクションで各テストをラップします try{} finally{} 最終的にトランザクションをロールバックする場所をブロックします。
  3. テストにはデータベースを厳密に使用し、心配しないでください。テストに毎回ユニークに識別された /名前の値を作成してください。そうすれば、競合がないようにしますが、それ以外の場合はアクションを起こさないでください。

他のヒント

使いたいです

@transactional

メソッド宣言より上のアノテーション。各テストの後にロールバックを実行します。それは私にとってうまく機能します。

例えば:

@Test
@Transactional  
public void simpleTest(){    
    // your logic here     
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top