0

データセット (xml で定義) があり、PostGreSQL、JPA で注釈が付けられた POJO、テスト用の Junit を使用した DbUnit を使用しています。

テストを実行すると、データベースにテーブルとシーケンスが作成されますが、テーブルの定義と列を含むデータセット (xml) の読み取りを開始すると、次のエラー org.dbunit.dataset.NoSuchTableException "nameoftable" が発生します。すべて大文字と通常の大文字を使用してテーブルの名前を付けると、機能しません。テーブルは public スキーマで作成され、xml でテーブルを public."nameoftable" として定義しようとしましたが、それも機能しません....何かアイデアはありますか?

このテストは、バージョン 2.2.2、2.3.0、および 2.4.5 の DUnit で実行しようとしました。

ありがとう。

4

1 に答える 1

1

DBUnitを使用すると、特定のスキーマを使用してテストすることも、完全なデータベース(複数のスキーマが含まれる可能性がある)を使用することもできます。後者を使用する場合は、インポート/エクスポート時にデータセットでスキーマを指定する必要があります。そうしないと、混乱する可能性があります。少なくともPostgreSQLでは、他の方法で試したことはありません。

これを強制するには、次のコードを追加します。

if (strSchema == null || strSchema.isEmpty()) {
    conn = new DatabaseConnection(jdbcConnection);
    conn.getConfig().setProperty(
            "http://www.dbunit.org/features/qualifiedTableNames", true);
}
else
    conn = new DatabaseConnection(jdbcConnection, strSchema);

重要なのは、プロパティの設定です。残りは、DBまたはスキーマに関連する接続を作成するために使用するものです(休止状態の構成XMLから抽出されたスキーマ名に基づいています)。

于 2011-05-21T14:33:45.513 に答える