Поделиться через


Практическое руководство. Обновление нестандартного условия теста 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)\Microsoft SQL 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 этот дополнительный процесс больше не требуется. (Дополнительные сведения см. в статье Компиляция проекта и установка условия теста.)

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

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

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

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

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

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

См. также

Пользовательские условия теста для модульных тестов SQL Server