Практическое руководство. Обновление нестандартного условия теста Visual Studio 2010 с предыдущего выпуска до SQL Server Data Tools

 

Чтобы использовать условие модульного теста, созданное в версии до SQL Server Data Tools, его необходимо обновить.

  • Обновление ссылок

  • Обновление атрибутов классов и ссылок на типы

  • Установка обновленного условия теста

Обновление ссылок

Обновления ссылок проекта

  1. Только для Visual Basic, в обозревателе решений щелкните Показать все файлы.

  2. В обозревателе решений разверните узел Ссылки.

  3. Щелкните правой кнопкой мыши следующие ссылки на сборки и выберите команду Удалить.

    1. Microsoft.Data.Schema.UnitTesting

    2. Microsoft.Data.Schema

  4. В меню Проект выберите команду Добавить ссылку (она также есть в контекстном меню, которое открывается при щелчке папки проекта правой кнопкой мыши в обозревателе решений).

  5. Перейдите на вкладку .NET.

  6. В списке Имя компонента выберите System.ComponentModel.Composition и нажмите кнопку ОК.

  7. Добавьте необходимые ссылки на сборки.Щелкните правой кнопкой мыши узел проекта и выберите пункт Добавить ссылку.Нажмите кнопку Обзор и перейдите к папке C:\Program Files (x86)\MicrosoftSQL Server\110\DAC\Bin.Выберите Microsoft.Data.Tools.Schema.Sql.dll и нажмите «Добавить», а затем нажмите кнопку ОК.

  8. В меню Проект выберите пункт Передать проект.

  9. Щелкните правой кнопкой мыши проект в обозревателе решений и выберите пункт Изменитьproject_name**.csproj**.

  10. После импорта Microsoft.CSharp.targets добавьте следующую инструкцию Import:

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="'$(VisualStudioVersion)' == ''" />
    
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="'$(VisualStudioVersion)' != ''" />
    
  11. Сохраните файл и закройте его.Щелкните проект правой кнопкой мыши в обозревателе решений и выберите Перезагрузить проект.

  12. Откройте класс условия теста и удалите все инструкции Using, которые начинаются с Microsoft.Data.Schema.Сделать это проще всего, щелкнув файл правой кнопкой мыши и выбрав Организация Using, а затем Удалить и сортировать.Необходимо удалить следующие инструкции Using:

    using Microsoft.Data.Schema.UnitTesting;
    using Microsoft.Data.Schema.UnitTesting.Conditions;
    using Microsoft.Data.Schema.Extensibility;
    using Microsoft.Data.Schema;
    
  13. Добавьте в файл следующие инструкции Using (если их там нет):

    using System.ComponentModel;
    using Microsoft.Data.Tools.Schema.Sql.UnitTesting;
    using Microsoft.Data.Tools.Schema.Sql.UnitTesting.Conditions;
    

Теперь условие теста будет использовать ссылки на сборки модульного тестирования SQL Server.

Обновление атрибутов классов и ссылок на типы

Замените старые атрибуты класса модульного тестирования на новый атрибут.Расширяемость модульного тестирования SQL Server теперь строится на Managed Extensibility Framework (MEF).Также необходимо обносить некоторые ссылки на типы.

Обновление атрибутов классов

Внесите в код следующие изменения.

  1. Удалите атрибуты DatabaseSchemaProviderCompatibility.Они были необходимы для компонента расширяемости предыдущей версии и не поддерживаются в модульном тестировании SQL Server.

  2. Удалите атрибут DisplayName.Отображаемое имя включается в новый атрибут.

  3. Добавьте новый атрибут ExportTestCondition.Этот атрибут требуется для того, чтобы условие теста могло быть обнаружено и использовано в модульном тестировании SQL Server.ExportTestCondition и заменяет один атрибут или несколько атрибутов DatabaseSchemaProviderCompatibility.ExportTestCondition принимает два параметра.

    • DisplayName является первым параметром.Он заменяет атрибут DisplayName и используется для описания всех условий теста этого типа.

    • Второй параметр используется для того, чтобы уникально определять расширение.Можно просто передать тип с помощью typeof(NewTestCondition), поскольку он должен быть уникальным.Однако, если вам больше нравится, строковый идентификатор также можно передать.

  4. Определение класса должно измениться следующим образом.

    Перед следующей операцией.

    [DatabaseSchemaProviderCompatibility(typeof(DatabaseSchemaProvider))]
    [DatabaseSchemaProviderCompatibility(null)]
    [DisplayName("NewTestCondition")]
    public class NewTestCondition:TestCondition
    {
       // Additional implementation to be added here
    }
    

    После следующих операций.

    [ExportTestCondition("NewTestCondition ", typeof(NewTestCondition))]
    public class NewTestCondition:TestCondition
    {
       // Additional implementation to be added here
    }
    

Обновление ссылок на типы

В платформе модульного тестирования SQL Server имена некоторых типов изменились.Чтобы обновить код с указанием новых имен типов, используйте команду Найти и заменить из меню Правка.Теперь имена типов начинаются с Sql.Имена классов необходимо изменить следующим образом.

Старое имя типа

Новое имя типа

ExecutionResult

SqlExecutionResult

Установка обновленного условия теста

В предыдущих версиях модульного тестирования баз данных иногда требовалось устанавливать условия тестов в глобальный кэш сборок либо создавать XML-файл, содержащий данные сборки.В модульном тестировании SQL Server этот дополнительный процесс больше не требуется.Дополнительные сведения см. в разделе Компиляция проекта и установка условия теста.

После обновления ссылок подпишите и скомпилируйте свою сборку.

Затем скопируйте файл сборки из выходного каталога (по умолчанию это «Мои документы\Visual Studio 2010\Projects\<имя_решения>\<имя_проекта>\bin\Debug\) в каталог %Program Files%\Microsoft Visual Studio <версия>\Common7\IDE\Extensions\Microsoft\SQLDB\TestConditions.При запуске Visual Studio программа определяет расширения в каталоге TestConditions и позволяет использовать их в рамках сеанса.

Обновление существующих тестов, которым требуется использовать новое условие теста

Найдите все проекты тестов, которые используют старое условие теста и которым требуется использовать новое условие.Выполните обновление этих проектов.Дополнительные сведения см. в разделе Обновление старого проекта тестов, содержащего модульные тесты базы данных.

Удалите ссылку на сборку на старое условие теста.

Добавьте новый модульный тест SQL Server в проект, чтобы создать в проекте ссылку на сборку на обновленное условие теста.Для создания ссылки необходимо добавить класс теста.После добавления ссылки класс теста можно будет удалить.

См. также

Нестандартные условия теста для модульных тестов SQL Server