SQL Developerは、DMLのユニットテストをサポートしていますが、私はDDLのためのユニットテストを作成する方法を発見していませんでした。この問題に対する良いアプローチは何でしょうか?私が始めているスキーマは小さく、水平線上の大規模なプロジェクトを含む数十ものテーブルより少ない。 Googleは単体テストのDDLへの適用にあまり戻っていません。ユニットテストDDLのために存在するDDLやその他のツールをテストするアプローチに関するアイデア?ユニットテストDDL SQL Developerを使用した3.1
答えて
あなたはDDLについてテストするために何をしたいですか?テーブルが定義どおりに作成されるか、作成されません。
あなたができることは、データディクショナリを照会してテーブルが存在しているかどうかを確認する一連のテストを作成し、必要なサイズとデータ型を持つカラムを持つことです。これは単体テストしかし、私はそれがどれほど価値があるかは分かりません。
スキーマのビルドスクリプト(またはスキーマにオブジェクトを追加するための新しいオブジェクトを追加するには、移行のシリーズ)を維持した場合、それはあなたがそれが定義されたようにスキーマが作成されている知っているエラーなしで適用された場合。
ストアドプロシージャがある場合、スキーマが100%正しくない場合、プロシージャの一部がコンパイルに失敗します。プロシージャをきれいに取得することは、スキーマのもう1つの検証ステップです。
最後に、あなたがDMLとストアドプロシージャをテストするために書くのユニットテストは、正しいデータが正しいテーブルに入っていることを確認します。
あなたはいくつかのテストは、表が特定の値のみを受け入れることができますまたは列がなどユニークであることを保証したい場合があります(つまり、制約が正しいテスト)が、それはあまりにもダウン標準ユニット・テストになります。
私は、DBのコードの書き込みユニットテストで大きな信者だが、私はそれを行うためのSQL開発者GUIのアプローチを好きではありません。今はアプリケーションのテストを書いていますが、Rubyでテストをコーディングしていますが、うまくいくようです。ビルドと自動化されたテストプロセスにも簡単に組み込むことができます。
もう1つの選択肢は、これまで私が使用していたUT_PLSQLですが、単純にPLSQLの性質によってテストが非常に冗長になるため、私は現在のプロジェクトでRubyを使用することにしました。
これは古い質問ですが、私は最近、同じ問題を解決するために取り組んでいます。私は、オブジェクトを作成する前にDDLのテストを定義し、それらのテストに合格するオブジェクトを作成すると便利だと思います。
私は、表が存在しない場合には例外を発生させ、そうでない場合には自動的に実行されるアサートの「パターン」 - つまりtdd.ddlunit.assert_tableexists(p_schema_name、p_table_name)を使用しています。
私が作成した他のアサーションは、すべてのvarchar2カラムがバイト長のセマンティクスではなく文字セマンティクスを使用し、すべてのテーブルとカラムにコメントが付いていることを確認するなどのためのものです。
これらはコードリポジトリにチェックインされ、継続的な統合フレームワークによって実行され、期待どおりの有効なデータベースがあることを確認できます。
- 1. DBオブジェクトのDDLを作成するためのOracle SQL Developerレポート
- 2. ユニットテストEJB 3.1
- 3. DDL文を使用したPostgres関数
- 4. PL/SQL Developer 7.0.2を使用したOracleトリガーのデバッグ?
- 5. SQL Developer(SQLcl)を使用した動的な場所へのスプール
- 6. Oracle SQL Developerの式を使用した複数列のエイリアシング
- 7. Oracle 11gを使用したSQL Developerのバインド変数
- 8. Iphoneユニットテスト:SQLを使用
- 9. Xcode 3.1でのユニットテスト
- 10. MySQLとSQL Serverのクエリを使用してテーブルDDLを生成
- 11. Rails 3.1とアセットパイプライン用のJavascriptユニットテスト
- 12. コントローラパラメータを使用したユニットテスト
- 13. Application.Current.Dispatcherを使用したユニットテスト
- 14. SQL Developerを使用してエクスポートし、主キーを保持
- 15. Pythonでcx_Oracleを使用してPL/SQLとDML/DDLを使用してSQLファイルを解析します
- 16. ユニットテストEJB 3.1 - なぜモックコンテナサービス
- 17. SQL Developerを使用して直接クエリをCSVにエクスポートする
- 18. SQL Developerを使用してDB2に接続する
- 19. SQL Developerを使用してデータベーステーブルにインポートする際の問題
- 20. 証明書なしでSSLを使用する - Oracle SQL Developer
- 21. エラーはSQL Developerを使用して、Oracleでストアドプロシージャ
- 22. Rails 3.1を使用したclient_side_validationsのデバッグ
- 23. SQL Developer Where Query
- 24. Query-SQL Developer
- 25. Oracle SQL Developer:トリガー
- 26. SQL Developer - GIT
- 27. PL/SQL DDL即時実行
- 28. SQL DDL番号の範囲
- 29. Visual Studio Expressを使用したSilverlightユニットテスト
- 30. Jenkinsを使用したJavaScriptユニットテスト
例えば、外部キーと制約は、おそらくユニットテストを受けるべきであるたくさんのロジックを含んでいます。 –