Модульное тестирование базы данных VS 2010 с пользовательским условием тестирования - PullRequest
0 голосов
/ 04 февраля 2011

После прочтения следующей статьи Создание условий тестирования для конструктора модульных тестов базы данных в MSDN я решил попробовать создать пользовательское условие тестирования для модульных тестов моей базы данных

  • Я отвечал требованиям Ultimate или Premium как моей среды.
  • Создан новый проект класса lib и указаны ссылки Microsoft.Data.Schema.UnitTesting и Microsoft.Data.Schema, а также Microsoft.Data.Schema.Sql
  • Я создал класс, унаследованный от TestCondition, и назвал его ExpectedSqlException, определенный как следующий

EDIT:

     [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)
         {
         ...
         }
    } 
  • Следуя инструкции о , я создал файл extentions.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 я должен иметь возможность использовать его в конструкторе модульного тестирования базы данных, чтобы определить ожидания, но, увы, он не работает: (

Может кто-нибудь помочь мне с этим? что мне не хватает?

1 Ответ

1 голос
/ 10 февраля 2011

Я могу видеть одну вещь, которую я сделал по-другому, когда я делал это, которая не была четко указана в том, как ссылаться на вас.

Это больно при размещении материала в «Program Files», но, возможно, это толькоработает на 32-битных машинах.Visual Studio - это 32-битное приложение, и на 64-битной машине (которую я использовал) я проигнорировал инструкции и скопировал файл сборки и xml в% ProgramFiles (x86)% NOT% ProgramFiles% - что, похоже, мне помогло.Я вообще никогда не пробовал% ProgramFiles% - поэтому я не могу убедиться, что это проблема.

Это так?

Приложение:

Подробнее о вашем кодевам нужно будет добавить атрибут [DatabaseSchemaProviderCompatibility (null)] в ваше TestCondition.Это загрузит расширение, если в текущем проекте не загружен поставщик схемы базы данных, как в случае с тестовыми проектами.Этот атрибут не очень интуитивно понятен.

Джеймс.

...