問題タブ [dbunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - DBUnit に関する奇妙な DB2 の問題
DBUnit テストを実行すると、奇妙な DB2 の問題が発生します。私の DBUnit テストは高度にカスタマイズされていますが、それが問題だとは思いません。テストを実行すると、失敗します。
SQLCODE: -1084、SQLSTATE: 57019
SQL1084C 共有メモリー・セグメントを割り振ることができません。
奇妙なメモリの問題のように聞こえますが、これは大きな奇妙なことです。テスト データベース サーバーに SSH で接続し、db2 に移動して「MY_DB に接続」すると、テストが成功し始めます。これは、報告されている想定されるメモリ エラーとは関係がないようです。
2 つのテストがあり、最初のテストは実際に成功し、2 番目のテストは失敗します。ただし、DBサーバーへの接続を取得してxmlデータセットをロードするときに、DBUnitセットアップコードで失敗します。
何が起こっているのでしょうか?
dbunit - DBUnit データのエクスポート
ここで見られるように、dbunit の QueryDataSet クラスを使用して sql ステートメントに基づいて単一のテーブルからデータをエクスポートすることで実行できるように、dbunit が sql ステートメントに基づいて複数のテーブルから特定のデータを一度にエクスポートする機能を持っているかどうかを知っていますか? .
ジェームズ
sql - oracle.sql.TIMESTAMPTZ と DbUnit の標準 JDBC クラスとの間の変換
Oracle 10g を実行していて、Type_Name の列があります
Java クラスに膨らませると、次のようになります。
しかし、DbUnit は、XML に書き込むために Oracle 固有のクラスを文字列に変換することを処理できません。これらの Oracle 固有のタイムスタンプから java.sql の何かに (たとえば、私の SELECT ステートメントで) 変換する簡単な方法があるかどうか疑問に思っています。
java - NoSuchTableException が dbunit テスト ケースからスローされる
Java データベース コードの別のプログラマーから継承したプロジェクトのテスト スイートを修正しようとしています。プロジェクト自体は DB 用に hibernate と MySQL を使用していますが、テスト ケースの目的で dbunit が使用されています。Hibernate のセッション ファクトリを正しくロードして初期化できますが、Eclipse でテストを実行しようとすると、"org.dbunit.dataset.NoSuchTableException: mytablename" という例外が発生し続けます。
すべてのファイルが適切な場所にあり、dbunit に渡す実際の XML ファイルに問題がないことはわかっています (FlatXmlDataSet タイプを使用しています)。データベース テスト ケースの基本クラスの setUp() メソッドは次のようになります。
CLEAN_INSERT データベース操作の直後に、これがどのテーブルであるかに関係なく、XML ファイルの最後のテーブルについて不平を言う例外がスローされます。DTD と XML スキーマを手作業と Eclipse で検証し、2 つのファイル内のテーブルの順序が一致していることを確認しました。これらのファイルをここに貼り付けたくはありませんが (多くの検索置換が必要になるため)、dbunit の例を調べて、構文が一致することを確認したことを信じてください。
何が間違っている可能性がありますか?私は何時間もグーグルで検索してきましたが、何も役に立ちません。
編集:言い忘れたことの 1 つは、スローする行にブレークポイントを配置すると、dataSet の構造を調べて、すべてのテーブルとすべてのテスト データが実際にそこにあることを確認できることです。したがって、少なくともその部分は正しく機能しているようです。
@Bogdan: うーん... いい考えだ。通常の INSERT でデータをロードしてみます。@sleske: また、良い提案です。ヒントをありがとう; うまくいけば、これは私をこの問題を解決するための正しい道に導きます.
sql - SQL クエリが「集計関数または句によってグループ化されていない」という例外をスローする
Hibernate/DBUnit を介してテストされている私たちのプロジェクトのテスト スイートの修復に取り組んでいます。次のような Hibernate から同様の例外をスローするいくつかのテスト ケースがあります。
java.sql.SQLException: 集計関数または group by 句ではありません: ステートメント内の org.hsqldb.Expression@109062e [... 何とか ...]
グーグルで調べたところ、これは集計関数 AVG() の使用が原因であると疑われます。これは、例外のメッセージにあり、スローされるすべてのクエリに含まれているためです。ただし、このエラーが発生している人々へのリンクをいくつか発見し、「ORDER BY」または「GROUP BY」句をコメントアウトするか、SELECT 句の他の列をグループ化に含めることで修正できました。なぜこれでこのようなエラー メッセージが修正されるのかは理解できますが、同じことを試しても違いがなかったので、それが私の状況に当てはまるかどうかはわかりません。また、ORDER/GROUP を使用する例外をスローするテスト ケースがいくつかありますが、すべてではありません。例えば:
このクエリでも、ORDER/GROUP 句を使用していないにもかかわらず、同じ例外がスローされます。また、生成された HSQL コードを Hibernate から直接 MySQL クエリ ブラウザにカット アンド ペーストしたところ、問題なく実行されました。また、このコードはすべて実稼働データベースで正常に機能することを指摘しておく価値があるため、なぜここでスローされるのか、私は本当に混乱しています.
その他の潜在的に役立つ情報 - テスト ケース用のダミー テスト データと休止状態用の MySQL ダイアレクトを含むフラットな XML データベース構造を使用しています。dbunit 2.4.3/hibernate 3.2.6 を使用しています。最新の休止状態バージョン 3.3.1 を使用してみましたが、同じように動作しました。
ポインタやヒントは大歓迎です。
c++ - C++ の DbUnit?
Linux の下で C++ で開発を行っており、自動テストをセットアップしようとしています。CppUnit や CxxTest などのテスト フレームワークを使用する予定です。ソフトウェアのビルドには Ant を使用しており、テストの実行にも Ant を使用します。
一部のテストにはデータベースへのアクセスが含まれるため、Java の世界での DbUnit (JUnit 拡張機能) のように、データベース内のテスト データの準備とクリーンアップのタスクを容易にするツールまたはフレームワークを探しています。
もう 1 つのオプションは、実際の DbUnit を使用することです。Java VM が利用可能です。DbUnit の Ant タスクを利用することが最も有望なようです。関連するフィールドレポートは大歓迎です!
java - DBUnit: の列 'MYCOL' が見つかりませんでした名前が正確に一致しないため、カタログ「MYDB」内の「MYSCHEMA .MYTABLE」
org.dbunit.database.QueryDataSet を使用してデータベースのエクスポートを作成できません。org.dbunit.dataset.xml.FlatXmlDataSet.write(IDataSet, OutputStream) を呼び出すと、次のスタック トレースが表示されます。
これを調査したところ、2 月に別の誰かがこの問題を抱えており、2.4.4 のスナップショット ビルドを使用して修正したことがわかりました。2.4.4 の通常のリリース ビルドを使用しています。
何か案は?
unit-testing - DBUnit テストが大量のメモリを消費するのはなぜですか?
単体テストに DBUnit を使用する休止状態ベースのアプリケーションがあります。各テストの setUp() でダミー データが読み込まれ、tearDown() で削除される XML テスト データベースがあります。問題は、IDE (この場合は Intellij) でスイート全体を実行できなくなったことです。これは、約 300 回のテストの後、ヒープ メモリが使い果たされるためです。JVM が最終的にあきらめて停止するまで、テストの実行には約 0.3 秒から 30 秒以上かかります。
ant の junit タスクを介してテスト スイートを実行すると、問題はなく、個々のクラスのテスト スイートも実行されません。ただし、CI サーバーでビルドを壊すのではなく、大規模なリファクタリングの変更をコードベースにチェックインする前に、スイート全体をローカルで実行できるのが気に入っています。
JVM への唯一の引数として -Xmx512m を使用してテスト スイートを実行しています。これは、CI サーバーでタスクを実行するときに ant に渡すのと同じ量です。私の hibernate-test.cfg.xml は次のようになります。
すべてのテスト クラスの拡張元となるクラスを作成しました。これは次のようになります。
ここでメモリ リークが発生していることは明らかですが、どこで発生しているのかはわかりません。これを診断するにはどうすればよいですか?
spring - DBUnit:障害時にのみ更新する方法は?
私はDBUnitを使用してSpring/Hibernateの永続性をテストしています。
私は抽象的なテストを作成しました:
しかし、テストを実行するたびに、すべてのテストメソッドの前にDBがdataSetを更新します。これは非常に長く、非常に良くないと思います。
失敗した場合にのみリロード/リフレッシュするにはどうすればよいですか?
PS:コードはどれくらい吸いますか?