6

数年間、私は qmTest と呼ばれるテスト ツールを使用しており、いくつかの Firebird データベースのテスト駆動型データベース開発を行うことができます。新しい機能 (テーブル、トリガー、ストアド プロシージャなど) が失敗するまでテストを作成し、テストに合格するまでデータベースを変更します。必要に応じて、テストが再び失敗するまでさらに作業を行い、テストが成功するまでデータベースを変更します。機能のテストが完了し、100% の確率で合格したら、それをデータベースの他の一連のテストに保存します。別のテストまたは展開に移る前に、すべてのテストをスイートとして実行して、何も壊れていないことを確認します。テストは他のテストに依存することができ、結果は記録され、ブラウザーに表示されます。

ここには何も新しいことはありません。

当店はMSSQLServerでの標準化を目指しており、データベースの開発にも同じ手順を使用したいと考えています。この種の開発を許可または促進するツールを知っている人はいますか? Team System にはあると思いますが、現時点ではそれを所有していません。

私はスクリプト作成に反対ではありませんが、よりグラフィカルな環境を歓迎します。

助言がありますか?

4

4 に答える 4

2

Team System がおそらく最もよく知られているソリューションですが、TSQLUnit (SourceForge) を試すこともできます。

私自身は使用していませんが、この記事はそれを紹介するのにまともな仕事をしています.

于 2009-06-22T14:28:31.093 に答える
1

db proのチームシステムにアクセスできなかったプロジェクトでは、msbuildおよびmsbuildのsdcタスクライブラリ(http://www.codeplex.com/sdctasks)と組み合わせたSQLスクリプトを使用しました。msbuildスクリプトは、sdcタスクを呼び出して、特定の順序(たとえば、データベースの作成、テーブルの作成など)および特定の接続文字列でSQLスクリプトを実行します。スクリプトは常にオブジェクトが存在するかどうかをチェックし、最初にティアダウンを実行して、それをバックアップします。

私が通常のVisualStudioデータベースプロジェクトに配置するsqlおよびmsbuildスクリプト(特別なことは何もしないので、単純な空のプロジェクトを使用することを選択できます)なので、すべてがソース制御されます。

このような一連のスクリプトを使用すると、テストの実行ごとに新しいデータベースをセットアップできます。次に、挿入スクリプトを使用してデータを入力し、それに対して単体テストを実行できます。

これらのスクリプトは、さまざまな環境(DEV / TST / QUA / ...)でデータベースを最初から設定する場合にも役立ちます。

于 2009-12-16T20:07:10.770 に答える
1

TSQLUnit を使用して、SQL Server データベースに対してテスト駆動開発スタイルを適切に適用することができました。最初に失敗する単体テスト sproc を記述してから、テストに合格するために必要な変更を加えることで、説明したのと同じフローに従いました。時間の経過とともに、新しい変更を加えても問題が発生しないことを検証する一連のテストを作成しました。

いくつかの困難な点 (既存の sproc のテストを作成する際の極端な困難を含む) がありましたが、特にスキーマの変更に対してはうまくいきました。ただし、TSQLUnit (自分で作成する必要がありました) とは異なり、アサーションのサポートが組み込まれているTST の T-SQL Test Too1を参照することをお勧めします。

于 2010-03-30T17:39:24.263 に答える
1

チェックアウトhttp://www.sqlservercentral.com/articles/Testing/66553/ およびhttp://www.sqlservercentral.com/articles/Database+Design/66845/

これは、T-SQL 内ですべてを行うことに関するかなり大雑把な記事です。

NHibernate や TestDriven などをテスト用に使用することを考えたことはありますか?

于 2009-06-22T14:28:44.650 に答える