Модульное тестирование базы данных VS 2010 с настраиваемым условием тестирования
-
28-10-2019 - |
Вопрос
После прочтения следующей статьи Создайте условия тестирования для конструктора модульных тестов базы данных в MSDN я решил попробовать создать собственное тестовое условие для моих модульных тестов базы данных
- Моя среда соответствует требованиям Ultimate или Premium.
- Создан новый проект библиотеки классов и ссылается на
Microsoft.Data.Schema.UnitTesting
иMicrosoft.Data.Schema
, а также наMicrosoft.Data.Schema.Sql
. - Я создал класс, унаследованный от TestCondition, и назвал его ExpectedSqlException, определенный следующим образом
РЕДАКТИРОВАТЬ:
родовое слово-
Следуя как , я затем создал расширения .xml файл, который я затем поместил в
%ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensions
, и он выглядит так (ключ / значение типа - это общедоступная информация моей сборки, она должна отличаться для вашей)[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 я должен иметь возможность использовать его в конструкторе модульного тестирования базы данных для определения ожиданий, НО УВАЖАЕМЫЙ ЭТО НЕ РАБОТАЕТ :(
Кто-нибудь может мне с этим помочь? что мне не хватает?
Решение
Я вижу одну вещь, которую я сделал по-другому, когда сделал это, что не ясно указано в том, как ссылаться, на которую вы ссылаетесь.
Он говорит о размещении чего-либо в "Program Files", но, возможно, это работает только для 32-битных машин.Visual Studio - это 32-битное приложение, и на 64-битной машине (которую я использовал) я проигнорировал инструкции и скопировал сборку и XML-файл в% ProgramFiles (x86)% NOT% ProgramFiles%, что, похоже, сработало для меня.Я никогда не пробовал% ProgramFiles%, поэтому не могу убедиться, что это проблема.
Это все?
Дополнение:
Рассматривая свой код дальше, вам нужно будет добавить атрибут [DatabaseSchemaProviderCompatibility (null)] в свой TestCondition.Это загрузит расширение, если у вас нет поставщика схемы базы данных, загруженного в текущий проект, что может быть в случае тестовых проектов.Мне кажется, этот атрибут не очень понятен.
Джеймс.