1

yo jhipster「dev」データベースとして mysql を使用していることを除いて、ジェネレーターのデフォルト構成を使用しています。テストを実行mvn testすると、失敗することなく成功します。

ただし、もう一度テストを実行すると、「dev」データベースに対して実行されるため、スイートが失敗することがわかりました...前回のテスト実行後に「ロールバック」または「リセット」されていませんでした。src/test/resources/config/application.yml実行ごとにリセットされるように構成されているメモリ内のh2データベースに対して実行することを期待していました。

テスト用に h2 を使用し、開発用に mysql を使用して環境をセットアップするにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

これがこれを解決する「正しい」方法であるかどうかはわかりませんが、新しいプロファイル「テスト」を作成することで、テストを繰り返し実行することができました。

その後、次の 2 つのことを行う必要がありました。

1) spring.profilesrc/test/resources/config/application.yml を "dev" ではなく "test" に変更します (テスト用の application.yml を dev とは異なるものにするため)

2)テスト@ActiveProfiles("test")の代わりに使用@ActiveProfiles("dev")

テスト application.yml は h2 データベースを使用し、必要に応じて実行間でリセットされます。

注: また、テスト クラスに次の注釈を付けることで、新しいプロファイルを作成せずに連続してテストを実行することにも成功しました。

@Transactional
@TransactionConfiguration(defaultRollback = true)

なので...

テストの最後に、トランザクションはロールバックされ、データは破棄され、次のテストを実行するための新しい環境が残されます。

https://spring.io/guides/tutorials/data/3/を参照

于 2014-06-11T19:16:27.687 に答える