Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте Visual Studio для определения и запуска модульных тестов для поддержания качества кода, гарантирования покрытия кода и поиска ошибок и сбоев до того, как это сделают ваши клиенты. Запустите модульные тесты часто, чтобы убедиться, что код работает правильно.
В этой статье код использует C# и C++, иллюстрации находятся в C#, но основные понятия и функции применяются к .NET языкам, C++, Python, JavaScript и TypeScript.
Создание модульных тестов
В этом разделе описывается создание проекта модульного теста.
Откройте проект, который требуется протестировать в Visual Studio.
В целях демонстрации примера модульного теста в этой статье проводится тестирование простого консольного проекта C# или C++, названного HelloWorld. Пример кода для такого проекта выглядит следующим образом:
- .NET
- C++
namespace HelloWorld { public class Program { public static void Main() { Console.WriteLine("Hello World!"); } } }В Обозреватель решений выберите узел решения. Затем в верхней строке меню выберите ФайлДобавитьНовый проект.
В диалоговом окне нового проекта найдите используемый проект модульного теста.
Введите тест в поле поиска, чтобы найти шаблон проекта модульного теста для тестовой платформы, которую вы хотите использовать, например MSTest (C#) или проект машинного модульного теста (C++), и выберите его.
Языки .NET в Visual Studio включают встроенные шаблоны для NUnit и xUnit. В этом примере выберите проект Нативного модульного теста, который использует Microsoft Native Unit Test Framework. (Чтобы использовать другую платформу тестирования C++, ознакомьтесь с разделом "Написание модульных тестов для C/C++". Сведения о Python см. в разделе Настройка модульного тестирования в коде Python для настройки тестового проекта.
Подсказка
В этой статье описывается, как вручную создавать модульные тесты. Если вы хотите автоматически создавать тесты из существующего кода, см. раздел Создание и запуск модульных тестов с помощью тестирования #REF! Copilot для .NET, или для других языков, см. в разделе Использовать слеш-команды в #REF! Copilot
Подсказка
В этой статье описывается, как вручную создавать модульные тесты. Если вы хотите автоматически создавать тесты из существующего кода, см. методы стабов модульных тестов C# из кода, или для других языков, см. Использовать команды косой черты в #REF! Copilot
На следующем рисунке показан модульный тест MSTest, который поддерживается в .NET.
Нажмите кнопку "Далее", выберите имя тестового проекта и нажмите кнопку "Создать".
Проект добавлен в решение.
В проекте модульного теста добавьте ссылку на проект, который вы хотите протестировать, щелкнув правой кнопкой мыши ссылки или зависимости , а затем выберите "Добавить ссылку " или "Добавить ссылку на проект".
Выберите проект, содержащий код, который вы протестируете, и нажмите кнопку "ОК".
Добавьте код в метод модульного теста.
Например, можно использовать следующий код, выбрав правильную вкладку документации, соответствующую платформе тестирования: MSTest, NUnit или xUnit (поддерживается только в .NET) или Microsoft Native Unit Test Framework.
- MSTest
- NUnit
- xUnit
- Microsoft Native Unit Test Framework
using Microsoft.VisualStudio.TestTools.UnitTesting; using System.IO; using System; namespace HelloWorldTests { [TestClass] public class UnitTest1 { private const string Expected = "Hello World!"; [TestMethod] public void TestMethod1() { using (var sw = new StringWriter()) { Console.SetOut(sw); HelloWorld.Program.Main(); var result = sw.ToString().Trim(); Assert.AreEqual(Expected, result); } } } }
Выполнение модульных тестов
Откройте обозреватель тестов.
Чтобы открытьобозреватель тестов, выберите "Обозреватель тестов" в верхней строке меню (или нажмите клавиши CTRLE, T).
Запустите модульные тесты, нажав кнопку "Выполнить все " (или нажмите клавиши CTRLR, V).
Снимок экрана, показывающий обозреватель тестов.
Выполнение модульных тестов в обозревателе тестов
После завершения тестов зеленый флажок указывает, что пройден тест. Красный значок "x" указывает, что тест завершился ошибкой.
Снимок экрана: результаты модульного теста в обозревателе тестов.
Проверка результатов модульного теста в обозревателе тестов
Подсказка
Обозреватель тестов можно использовать для выполнения модульных тестов из встроенной платформы тестирования (MSTest) или сторонних платформ тестирования. Вы можете группировать тесты в категории, фильтровать список тестов и создавать, сохранять и запускать списки воспроизведения тестов. Вы также можете отлаживать тесты и анализировать производительность тестов и покрытие кода.
Просмотр результатов динамического модульного теста (Visual Studio Enterprise)
Если вы используете платформу тестирования MSTest, xUnit или NUnit в Visual Studio 2017 или более поздней версии, вы можете просмотреть динамические результаты модульных тестов.
Замечание
Для выполнения этих действий требуется Visual Studio Enterprise, а также код .NET и одну из следующих платформ тестирования: MSTest, xUnit или NUnit.
Включите динамическое модульное тестирование в меню "Тест", выбрав "Запуск тестовогодинамического модульного тестирования".
Просмотрите результаты тестов в окне редактора кода при написании и изменении кода.
Снимок экрана: результаты тестов.
Просмотр результатов тестов
Щелкните индикатор результата теста, чтобы просмотреть дополнительные сведения, например имена тестов, охватывающих этот метод.
Снимок экрана: индикаторы результатов теста.
Выбор индикаторов результатов теста
Дополнительные сведения о динамическом модулье тестирования см. в разделе Live Unit Testing.
Использование сторонней платформы тестирования
Модульные тесты можно запускать в Visual Studio с помощью сторонних платформ тестирования, таких как NUnit, Boost или Google C++ Testing Framework, в зависимости от языка программирования. Чтобы использовать стороннюю платформу, выполните приведенные действия.
Используйте NuGet диспетчер пакетов для установки пакета NuGet для выбранной платформы.
(.NET) Начиная с Visual Studio 2017 версии 14.6 Visual Studio включает предварительно настроенные шаблоны тестовых проектов для платформ тестирования NUnit и xUnit. Шаблоны также включают необходимые пакеты NuGet для поддержки.
(C++) В Visual Studio 2017 и более поздних версиях некоторые платформы, такие как Google C++ Testing Framework, уже включены. Подробнее см. в Написание модульных тестов для C/C++ в Visual Studio.
Чтобы добавить проект модульного теста, выполните приведенные действия.
Откройте решение, содержащее код, который требуется протестировать.
Щелкните решение правой кнопкой мыши в Обозреватель решений и выберите Add>New Project.
Выберите шаблон проекта модульного теста.
В этом примере выберите NUnit
шаблон тестового проекта

Шаблон проекта содержит ссылки на NuGet на NUnit и NUnit3TestAdapter.
Добавьте ссылку из тестового проекта в проект, содержащий код, который требуется протестировать.
Щелкните проект правой кнопкой мыши в Обозреватель решений и выберите Add>Reference. (Вы также можете добавить ссылку из меню правой кнопкой мыши узла Ссылок или зависимостей .)
Добавьте код в метод тестирования.
Снимок экрана: код в файле модульного теста.
Добавление кода в файл кода модульного теста
Запустите тест из обозревателя тестов или щелкните правой кнопкой мыши код теста и выберите команду "Выполнить тесты" (или CTRLR, T).
Дальнейшие шаги
Основные сведения о модульных тестах
Создание и запуск модульных тестов для управляемого кода
Написание модульных тестов для C/C++