カスタムテスト条件を使用したVS2010データベース単体テスト
-
28-10-2019 - |
質問
次の記事を読んだ後
- 環境としてUltimateまたはPremiumのいずれかの要件を満たしました。
- 新しいクラスlibプロジェクトを作成し、
Microsoft.Data.Schema.UnitTesting
とMicrosoft.Data.Schema
、およびMicrosoft.Data.Schema.Sql
を参照しました - TestConditionを継承するクラスを作成し、次のように定義されたExpectedSqlExceptionと呼びました
編集: ジェネラコディセタグプレ
-
方法に従って拡張機能を作成しました次に
%ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensions
に配置した.xmlファイルは次のようになります(キー/値のタイプはアセンブリの公開情報です。これはユーザーによって異なるはずです)[DisplayName("Some test condition")] [DatabaseSchemaProviderCompatibility(null)] public class SomeTestCondition : TestCondition { public override void Assert(System.Data.Common.DbConnection validationConnection, Microsoft.Data.Schema.UnitTesting.ExecutionResult[] results) { ... } }
-
アセンブリに署名した後、アセンブリをGACに登録しました
新しいTestConditionを使用すると、データベース単体テストデザイナー内でそれを使用して期待値を定義できるようになりますが、残念ながら機能しません:(
誰かがこれを手伝ってくれますか?私は何が欠けていますか?
-
解決
これを行ったときに、参照したリンクの方法に明確に記載されていない、別の方法で行ったことが1つあります。
「ProgramFiles」にデータを入れるのは大変ですが、これは32ビットマシンでしか機能しないかもしれません。Visual Studioは32ビットアプリであり、64ビットマシン(私が使用していた)では、指示を無視し、アセンブリとxmlファイルを%ProgramFiles(x86)%ではなく%ProgramFiles(x86)%にコピーしました-これは私にとってはうまくいくようでした。しかし、%ProgramFiles%をまったく試したことがないので、これが問題であることを確認できません。
それですか?
補遺:
コードをさらに見ると、TestConditionに[DatabaseSchemaProviderCompatibility(null)]属性を追加する必要があります。これにより、現在のプロジェクトにデータベーススキーマプロバイダーがロードされていない場合に拡張機能がロードされます。これは、テストプロジェクトの場合です。その属性はあまり直感的な方法ではありません。
ジェームズ。