2

RedGate と SQL テスト (tSQLt) を組み合わせて使用​​しています。単体テストを行うために、各データベースにフレームワークをインストールします。

単体テストとフレームワーク オブジェクトを 1 つの中央の場所に配置して複数のデータベースで使用できるように tSQLt フレームワークを使用する方法はありますか?

また、TFS を備えた RedGate の SQL ソース コントロールをリポジトリとして使用して、スキーマの変更を追跡しています。これらの変更は、開発 --> テスト --> 運用の環境の順序でプロモートされます。

言うまでもなく、テスト自体と組み合わされたフレームワークの追加は、現在データベース内に大量の新しい SQL オブジェクト (テーブル、ストアド プロシージャなど) を表しています。理想的には、これらのオブジェクトを開発とテストにのみ配置し、本番データベースが混乱しないようにする必要があります。tSQLt の変更を本番環境にマージすることをスキップすることもできますが、そうすると、テスト環境のソース管理に残っている変更を最後までマージ解除することになります。

この問題を回避するための考えはありますか?

4

3 に答える 3

2

SQL ソース管理を使用してデータベースの変更を管理しているため、tSQLt テストをチェックインすることは正しいことです。これらがステージングまたは本番環境にプッシュされないようにする場合は、変更をプッシュするために使用するツールが tSQLt テストを除外していることを確認する必要があります。これに Redgate SQL Compare を使用している場合は、「tSQLt フレームワークとテストを無視する」オプションを使用します。詳細な説明については、製品ドキュメントを参照してください。別のツールまたはプロセスを使用している場合は、コメントを投稿してください。この回答を修正します。

于 2016-05-30T14:27:49.887 に答える
1

現在、tSQLt を別のデータベースにインストールする方法はありません。tSQLt データベースに依存しないようにするプロセスを開始しましたが、これは基本的に完全な書き直しであるため、しばらく時間がかかります。

それまでの間、SQL ソース管理から tSQLt を除外できます: https://redgate.uservoice.com/forums/39019-sql-source-control/suggestions/4901910-faster-way-to-exclude-all-tsqlt-content

于 2016-04-26T18:56:27.210 に答える
0

テストをソース管理に残したいが、それらをより高い環境に昇格させたくない場合、それが Redgate の のデフォルトの動作ですDLM Automation Suite。ビルド サーバー プラグインの 1 つ (ビルド/テスト用の TeamCity または TFS、リリース用の Octopus Deploy など) を使用するか、SQL リリースを使用して PowerShell ですべてを実行できます。https://documentation.red-gate.com/display/SR1/SQL+Release+documentation

Redgate の SQL Toolbelt のライセンスをお持ちの場合は、オートメーション ツールのライセンスを既に取得している可能性があります (これは以前のライセンスに対する変更です)。http://www.red-gate.com/products/sql-development/sql-toolbelt/#automation

于 2016-04-27T13:54:29.413 に答える