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


Обновление модульных тестов с версии Visual Studio 2010

Visual Studio 2012 обеспечивает совместимость тестовых проектов с тестовыми проектами Visual Studio 2010 SP1.Например, тестовые проекты, которые были созданы в Visual Studio 2010 SP1 можно открыть с помощью Visual Studio 2012 без какого-либо обновления.Следовательно, ваш коллектив может использовать и Visual Studio 2010 SP1, и Visual Studio 2012 для работы с одним и тем же тестовым проектом.Для получения дополнительной информации см. Upgrading tests from Visual Studio 2010.

В Visual Studio 2012 представлено несколько изменений в модульном тестировании.Вследствие этих изменений, важно понимать проблемы совместимости между предыдущими версиями Visual Studio и Visual Studio 2012.Из всех изменений, относящихся к модульному тестированию, значительным изменением является то, что Visual Studio 2012 содержит в себе больше, чем один шаблон тестового проекта, включая, в том числе и шаблон проекта модульного теста.Новые модульные тесты добавляются к новому шаблону проекта модульного теста.Модульные тесты можно также включать в другом новом шаблоне, называющимся "Проект с закодированными тестами пользовательского интерфейса".Дополнительные сведения о новых шаблонах проектов тестов см. в разделе Обновление тестов из более ранних версий Visual Studio.Новые проекты модульных тестов больше не содержат в себе по умолчанию файл параметров тестирования.За счет исключения файла с параметрами тестирования, улучшается производительность модульных тестов.Для обеспечения совместимости по-прежнему можно использовать существующие тестовые проекты, созданные с помощью Visual Studio 2010.Однако для повышения производительности рекомендуется удалить файл с параметрами тестирования, связанный с данным тестовым проектом, в случае если в нем нет никакой необходимости.Например, можно оставить файл с параметрами тестирования, если модульные тесты запускаются в распределенной среде, или если требуется собирать конкретные диагностические данные.Если имеются схожие потребности при использовании шаблона нового проекта модульных тестов или проекта с закодированными тестами пользовательского интерфейса, то для них можно добавить файл с настройками теста вручную.

ПримечаниеПримечание

Существующие модульные тесты в тестовых проектах Visual Studio 2010 SP1 будут легко работать с Visual Studio 2010 SP1 и Visual Studio 2012.В файлы тестовых проектов не вносятся никакие изменения, если тестовый проект Visual Studio 2010, содержащий модульные тесты, открывается в Visual Studio 2012 или наоборот.

Предупреждающее замечаниеВнимание

Visual Studio 2010 не удается открыть проект A.C. ++/CLI, целевые объекты набора инструментов версии 11.0 (т е проект, созданный в Visual Studio 2012).Это ограничение применяется ко всем проектам C ++/CLI, а не только проекты модульных тестов C ++/CLI.

ПримечаниеПримечание

Новые модульные тесты можно выполнять с помощью vstest.console.exe из командной строки.Дополнительные сведения об использовании vstest.console.exe см. в разделе Параметры командной строки VSTest.Console.exe или выполните команду с флагом, запрашивающим справку: vstest.console.exe /?.Можно продолжить запускать существующие модульные тесты с помощью команды MStest.exe.Дополнительные сведения см. в разделах Практическое руководство. Запуск автоматических тестов из командной строки с помощью программы MSTest и Параметры командной строки программы MSTest.exe.

Другое значительное изменение — это новый обозреватель тестов.В Visual Studio 2012 некоторые окна тестирования, с которыми вы можете быть знакомы с предыдущих версий Visual Studio, объявлены устаревшими, как например, окно представления теста.Обозреватель тестов предназначен для лучшей поддержки разработчиков и коллективов, применяющих модульное тестирование на практике при разработке программного обеспечения.Для получения дополнительной информации см. Выполнение модульных тестов с помощью обозревателя тестов.

Проблемы совместимости между Visual Studio 2010 и Visual Studio 2012 SP1

Перечисляются некоторые проблемы, которые следует учитывать при переносе модульных тестов между Visual Studio 2010 SP1 и Visual Studio 2012:

Функциональность модульного теста

Проблема

Решение

Списки тестов (файлы .vsmdi) в Visual Studio 2012 — нерекомендуемы.

В Visual Studio пользователь больше не может создавать новые списки тестов (файлы .vsmdi) или списки выполнения тестов.

СоветСовет
Категории тестов обеспечивают более высокий уровень гибкости по сравнению с функцией списков тестов, использовавшейся в предыдущих версиях Microsoft Visual Studio.Для одновременного запуска тестов из нескольких категорий или ограничения выполняемых тестов только тестами из определенных категорий можно использовать категории тестов вместе с логическими операторами.Кроме того, категории тестов легко добавлять при создании методов тестов, и после создания этих методов не требуется вести списки тестов.Благодаря использованию категорий устраняется необходимость в извлечении и возврате файла <solution name>.vsmdi, содержащего списки тестов.Дополнительные сведения см. в разделе Определение категорий тестов для группировки тестов.

Закрытые методы доступа в Visual Studio 2012 — не рекомендованы.

В предыдущих версиях Visual Studio, можно было использовать Publicize для определения внутренних программных интерфейсов (API) и создания открытого API, который можно вызывать в тестах, которые, в свою очередь, вызывают аналогичные API продукта.Затем можно было использовать создание кода для создания тестовых заглушек и создания фрагмента кода внутри заглушки.

Пользователь больше не может создавать закрытые методы доступа.

  • Тестовые проекты Visual Studio 2010 компилируются и работают в Visual Studio 2012.Построение будет включать в себя предупреждения вывода.

  • Если все же требуется протестировать внутренний API, то существуют следующие эти опции:

    • Использование класса PrivateObject для облегчения доступа к внутренним и закрытые интерфейсам API из кода.Он может быть найден в сборке Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll.

    • Создание оболочки отражения, которая может отражать ваш код для доступа к внутренним или закрытым API.

    • Если код, к которому осуществляется доступ, является внутренним, то получить доступ к API-интерфейсам можно с помощью InternalsVisibleToAttribute, поэтому код теста может иметь доступ к внутренним API.

Влияние на тест было удалено.

Совместное использование результатов выполнения при помощи TRX журналов из обозревателя тестов.

Можно по-прежнему получать TRX журналы и из командной строки, и из меню командное построение.

Покрытие кода с собственными модульными тестами C C-++

Модульного теста A, C, C-++ завершается неудачей и покрытие кода включена, данные трассировки стека для ошибок.

Ошибка выполнения модульных тестов C C-++ без покрытия кода и получить стека вызова, чтобы определить проблему.

См. также

Основные понятия

совместимость Visual Studio 11

Проверка кода при помощи модульных тестов

Обновление тестов из более ранних версий Visual Studio

Обновление закодированных тестов пользовательского интерфейса с версии Visual Studio 2010