0

MSDNで次の記事「データベース ユニット テスト デザイナーのテスト条件を作成する」を読んだ後、データベース ユニット テスト用のカスタム テスト条件を作成することにしました。

  • 私の環境として、Ultimate または Premium のいずれかの要件を満たしました。
  • 新しいクラス ライブラリ プロジェクトを作成して参照Microsoft.Data.Schema.UnitTestingMicrosoft.Data.Schema、さらにMicrosoft.Data.Schema.Sql
  • 私は TestCondition から継承するクラスを作成し、それを次のように定義された ExpectedSqlException と呼びました

編集:

     [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)
         {
         ...
         }
    } 
  • 方法に従って、extensions.xmlファイルを作成し、配置した%ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensionsところ、そのように見えます(タイプのキー/値はアセンブリの公開情報です。これはあなたのものとは異なるはずです)

    <?xml version="1.0" encoding="utf-8"?>    
    <extensions assembly="" version="1" xmlns="urn:Microsoft.Data.Schema.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd">    
        <extension type="SomeTestCondition.SomeTestCondition" assembly="SomeTestCondition, Version=1.0.0.0, Culture=neutral, PublicKeyToken=01a289ad96d7a8a8" enabled="true" />    
    </extensions>
    
  • アセンブリに署名した後、アセンブリをGACに登録しました

したがって、新しい TestCondition を使用すると、データベース ユニット テスト デザイナー内でそれを使用して期待値を定義できるはずですが、残念ながら機能しません :(

誰かがこれで私を助けることができますか? 私は何が欠けていますか?

4

1 に答える 1

1

これを行ったときに、参照したリンク方法に明確に記載されていないことが1つわかります。

「Program Files」に何かを入れることについては大騒ぎしますが、これは 32 ビット マシンでしか機能しない可能性があります。Visual Studio は 32 ビット アプリであり、64 ビット マシン (私が使用していた) では、指示を無視して、アセンブリと xml ファイルを %ProgramFiles(x86)% ではなく %ProgramFiles% にコピーしました。ただし、 %ProgramFiles% をまったく試したことがないため、これが問題であることを確認できません。

あれですか?

補遺:

コードをさらに見てみると、TestCondition に [DatabaseSchemaProviderCompatibility(null)] 属性を追加する必要があります。これにより、現在のプロジェクトにデータベース スキーマ プロバイダーが読み込まれていない場合 (テスト プロジェクトの場合など) に、拡張機能が読み込まれます。その属性はあまり直感的ではないと思います。

ジェームズ。

于 2011-02-09T23:55:09.487 に答える