質問

次の記事を読んだ後データベース単体テストデザイナのテスト条件を作成する MSDNで、データベース単体テスト用のカスタムテスト条件を作成してみることにしました

  • 環境としてUltimateまたはPremiumのいずれかの要件を満たしました。
  • 新しいクラスlibプロジェクトを作成し、Microsoft.Data.Schema.UnitTestingMicrosoft.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)]属性を追加する必要があります。これにより、現在のプロジェクトにデータベーススキーマプロバイダーがロードされていない場合に拡張機能がロードされます。これは、テストプロジェクトの場合です。その属性はあまり直感的な方法ではありません。

ジェームズ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top