4

エンティティコードファーストを使用するアプリケーションがあり、Oracleサポート用のDevartを追加しました。シードデータテストをカバーするVisualStudioテストランナーを介して実行される一連の統合テストがあります。テストの実行時に、SQLServerとOracleに対してこれらのテストを実行できるようにしたいと考えています。誰かがこれに近づくのに良い角度を持っていますか?

4

2 に答える 2

1

構成ファイルから接続文字列とその他のセットアップ情報を読み取ることができます。

データベース/セットアップごとに構成ファイルを作成します。

各構成で 1 回、テストを 2 回実行するコマンド ファイルを作成します。

于 2012-12-20T06:41:12.167 に答える
0

異なる環境設定が必要でありながら、テストをコーディングするのは 1 回だけで、何度も実行する場合は、データ ドリブン テストはどうでしょうか。

[DataSource]属性でテストを装飾できます。データソース自体は、Excel ファイル、CSV などである可能性があり、ファイルには接続文字列と、環境を構成するためのその他の関連情報が含まれている可能性があります。

テストを実行するたびに、環境データを表す DataRow が作成されます。

属性を使用して NUnit も使用し、[ValueSource]値を返すクラスの格納場所、ファイル、静的メソッドなどからデータを提供する場合、同じことが実現できます。

これらのセットアップのいずれかを使用すると、テストは実際に複数回実行されるため、各環境が個別に失敗または合格する可能性があります。

これは、ロジックの 1 つの部分をテストするための非常に優れたアプローチでもありますが、シナリオと期待される出力が異なります。入力と期待される出力を外部データソース内に保持し、テスト フレームワークをすべてのシナリオで実行して、それらがすべて期待どおりに機能することを確認できます。これは、比較するシナリオが何百もある場合など、既に知られている結果や Excel の同じアルゴリズムに対してチェックしたい金融アルゴリズムなどのブラックボックス テストを行うのに役立つ場合があります。

これは明らかに、分離されたクラスに対して実際の単体テストを作成するべきではないと言っているのではなく、ツールボックスに追加する別のツールにすぎません。

于 2012-12-20T06:47:38.937 に答える