miso_soup3 Blog

主に ASP.NET 関連について書いています。

SQL Server Data Tools で単体テスト

DB の Unit Test も出来る!SQL Server Data Tools December 2012 を公開
SQL Server Data Tools の最新バージョンが 2012 / 12 にリリースされていました。
この最新バージョンでは、Visual Studio 2010 Professional 以上で単体テストができます。

ということで簡単に試してみました。

SQL Server Data Tools、略して SSDT は、Web Platform Installer からインストールすることができます。

スカラー値関数のテスト

テスト対象のスカラー値関数を作成します。
合計を計算する簡単なものです。

作成後、「SQL Server オブジェクトエクスプローラー」ウィンドウから、
スカラー値関数を右クリックで「単体テストの作成」

作成ウィンドウがでるので、適当な名前を付けます。
その後、テストで使用するデータベースの接続設定を行います。

すると、テストのデザイナとコードが表示されるので、テストしたい値を入れます。
例として、x と y に、2 と 3 を指定しました。

次に、下の方のテスト条件ウィンドウにて、
予め作成されている条件を、ひとまず削除します。

テスト条件「スカラー値」を選択し、「+」をクリックして、
条件を追加します。

追加したものを選択し、「プロパティ」ウィンドウにて、
「NULLが予期されてました」を「False」、
「予期される値」を、2 + 3 の「5」に設定します。

テストの作成は以上です。

テスト実行

「テストビュー」ウィンドウから、テストを実行して”成功”を確認できます。

試しにわざとテストを失敗させてみます。

検証失敗メッセージも丁寧に表示されます。

チュートリアル: SQL Server の単体テストの作成と実行
ここのチュートリアルには、スカラー値関数以外のテストの手順が記載されています。

既存のデータベースプロジェクトを開くとビルドに失敗

最新の SQL Server Data Tools をインストールした後、
既存のデータベースプロジェクトを開いた時に、
以下のようなエラーがたくさん出ました。
(Azure で見たことあるエラー…)


SQL 71567, SQL71566

New error after upgrading to September SSDT
ここなどを見ると、同じ現象の方が結構いらっしゃるよう…?

私の場合、データベースプロジェクトのプロパティで、
「共通のオブジェクトに対して拡張 Transact-SQL の検証を有効にする」に
チェックを入れると直りました。