2

私の Junit テストは DBUnit を使用しており、Eclipse から実行すると正常に動作します。ただし、Maven で同じテストを実行すると、次のエラーで 1 つのテストが失敗します。

integrity constraint violation: foreign key no action

そのテストと、Eclipse GUI からの一連のテスト (「JUnit テストとして実行」) を数回続けて実行しようとしましたが、失敗することはありませんが、Maven からは失敗します。

テストごとに @DatabaseSetup を使用していますが、データベースを本当にリセットするのに十分でしょうか? また、Maven がテストを並行して実行する可能性があると考えたので、pom.xml で Surefire プラグインの forkMode を「常に」に設定しようとしましたが、何も変わりませんでした。

4

2 に答える 2

1

データベースの初期化にスプリングテスト DBUnitの注釈を使用して@DatabaseSetUpいます。注釈も使用する必要があります。@DatabaseTearDown

春テストDBUnitのドキュメントから:

The @DatabaseTearDown annotation can be used to reset database tables once a test has completed. As with @DatabaseSetup the annotation can be applied at the method or class level. When using @DatabaseTearDown use the value and type attributes in the same way as @DatabaseSetup.

于 2013-03-14T13:20:03.817 に答える