私はmysqlデータベースを指すアプリケーションを持っています。dbunit実際のデータベースをテストデータベースと同期させる方法
DBUnitを使用してテスト環境をセットアップしようとしていますが、正常に動作します。
DBUnitを設定するとき、私はそれがSAME mysqlデータベースを指していたという問題があります。したがって、DBUnitが実行されると、指定されたdataset.xmlが使用され、元のデータベースの情報が上書きされます。それは私がそれを指しているところにあるので意味があります。
質問は私のDBUnitが指すように、テスト用にのみ新しいデータベースを作成するはずですか?もしそうなら、元のデータベースとテストのための構造の同期をどうすれば管理できますか?
ありがとうございます。
偉大な回答ありがとう! はい私はhibernate-entitymanagerを使用していて、私はliquibaseを使ってmysqlデータベースを管理しているとしましょう。 私の頭に浮かぶのは、Hibernate DDL genを使用してメモリ内データベースのスキーマとそのテーブルを作成するのは "安全"ですか?または両方のデータベースに同じliquibaseを使用する方法を見つけるべきでしょうか? –
チームがエンティティを正しく管理している場合、Hibernate DDL genを使用することはおそらく非常に安全です。ただし、エンティティに必要な注釈がすべてない場合は、LiquiBaseの設定が最適です。 チームはLiquiBaseファイルを書き込もうと努力しており、LiquiBaseは "マスター定義"を持ち(プロダクション用に使用されています)、Hibernate DDL genの代わりに使用します。このようにして、テストはdev/test/prod環境と同じ設定を使用します。これは非常に有用で重要です。 – Jeff
ジェフ、もう一つ疑いがあります。私のDAOは私のpersistence.xmlで指定されている接続を使用しています(mysqlへ)...私のdbunitはPropertiesBasedJdbcDatabaseTester(hsqlへ)で指定した接続を使用しています...だから、テストを実行すると、DAOは私のメモリ内のデータベースを指しません。この問題を解決するのに手伝ってくれますか? –