Начало работы с модульным тестированием

Используйте Visual Studio, чтобы определить и запустить модульные тесты для обеспечения работоспособности кода, нужного объема протестированного кода, а также для обнаружения ошибок и сбоев, прежде чем с ними столкнутся клиенты. Выполняйте модульные тесты регулярно, чтобы обеспечить правильную работу вашего кода.

В этой статье код использует C# и C++, иллюстрации представлены на C#, однако концепции и функции применимы к языкам .NET, C++, Python, JavaScript и TypeScript.

Создание модульных тестов

В этом разделе описывается создание проекта модульного теста.

  1. Откройте проект, который хотите протестировать в Visual Studio.

    В целях демонстрации примера модульного теста в этой статье тестируется простой консольный проект C# или C++ "Hello World" с именем HelloWorld. Пример кода для такого проекта выглядит следующим образом:

    namespace HelloWorld
    {
       public class Program
       {
          public static void Main()
          {
             Console.WriteLine("Hello World!");
          }
       }
    }
    
  2. Выберите узел решения в обозревателе решений. Затем в верхней строке меню выберите Файл>Добавить>Новый проект.

  3. В диалоговом окне нового проекта найдите проект модульного теста, который хотите использовать.

    Введите test в поле поиска, чтобы найти шаблон проекта модульного теста для тестовой среды, которую вы хотите использовать, например MSTest (C#) или проект Native Unit Test (C++), и выберите его.

    Начиная с Visual Studio 2017 версии 14.8, языки .NET включают встроенные шаблоны для NUnit и xUnit. Для C++ в этом примере выберите проект Собственный модульный тест, в котором используется платформа Microsoft Native Unit Test Framework. (Чтобы использовать другую среду тестирования C++, см. Написание модульных тестов для C/C++). Сведения о настройке тестового проекта на Python см. в статье Настройка модульного тестирования для кода Python.

    Совет

    Только для C#: вы можете создавать проекты модульных тестов из кода, используя более быстрый метод. Дополнительные сведения см. в разделе Создание проектов модульных тестов и методов теста. Чтобы использовать этот метод для .NET Core или .NET Standard, требуется Visual Studio 2019 или более поздней версии.

    На следующем рисунке показано модульный тест MSTest, поддерживаемый в .NET.

    Unit test project template in Visual Studio 2022

    Нажмите Далее, выберите имя для тестового проекта и нажмите Создать.

    Unit test project template in Visual Studio 2019

    Нажмите Далее, выберите имя для тестового проекта и нажмите Создать.

    Проект добавляется в решение.

    Unit test project in Solution Explorer

    Unit test project in Solution Explorer

  4. В проекте модульного тестирования добавьте ссылку на проект, который вы хотите протестировать, щелкнув правой кнопкой мыши Ссылки или Зависимости, после чего выбрав Добавить ссылку или Добавить ссылку на проект.

  5. Выберите проект, содержащий код, который будет тестироваться, и нажмите OK.

    Add project reference in Visual Studio

    Add project reference in Visual Studio

  6. Добавьте код в метод модульных тестов.

    Так вы можете использовать следующий код, выбрав правильную вкладку документации, которая соответствует вашей тестовой среде: MSTest, NUnit или xUnit (поддерживается только в .NET) или C ++ 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);
             }
          }
       }
    }
    

Выполнение модульных тестов

  1. Откройте обозреватель тестов.

    Откройте обозреватель тестов, выбрав Тест>Обозреватель тестов в верхней строке меню (или нажмите клавиши CTRL + E, T).

  2. Запустите модульные тесты, нажав Запустить все (или нажмите клавиши CTRL + R, V).

    Run unit tests in Test Explorer

    Run unit tests in Test Explorer

    После завершения зеленый флажок указывает, что тест пройден. Красный значок "x" указывает на сбой теста.

    Review unit test results in Test Explorer

    Review unit test results in Test Explorer

Совет

Используйте обозреватель тестов для запуска модульных тестов из встроенной платформы тестирования (MSTest) или сторонней платформы тестирования. Вы можете группировать тесты по категориям, фильтровать список тестов, а также создавать, сохранять и запускать списки воспроизведения тестов. Кроме того, с его помощью можно выполнять отладку тестов и анализировать производительность тестов и покрытие кода.

Просмотр результатов динамического модульного тестирования (Visual Studio Enterprise)

Если вы используете платформу тестирования MSTest, xUnit или NUnit в Visual Studio 2017 или более поздней версии, можно просмотреть динамические результаты модульных тестов.

Примечание.

Для выполнения этих шагов требуется Visual Studio Enterprise вместе с кодом .NET и одной из следующих платформ тестирования: MSTest, xUnit или NUnit.

  1. Включите Live Unit Testing в меню Тест, выбрав Тест>Live Unit Testing>Запустить.

    Start live unit testing in Visual Studio 2019

    Start live unit testing in Visual Studio 2022

  2. Вы можете просматривать результаты тестов в окне редактора кода по мере написания и редактирования кода.

    View the results of the tests

    View the results of the tests

  3. Щелкните индикатор результатов теста для просмотра дополнительных сведений, таких как имена тестов для этого метода.

    Choose the test result indicators

    Choose the test result indicators

Дополнительные сведения о Live Unit Testing см. в разделе 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.

Добавление проекта модульного тестирования:

  1. Откройте решение, содержащее код, который нужно протестировать.

  2. В обозревателе решений щелкните решение правой кнопкой мыши и выберите Добавить>Создать проект.

  3. Выберите шаблон проекта модульного теста.

    Для того примера — NUnit

    NUnit test project template in Visual Studio 2022

    NUnit test project template in Visual Studio 2019

    Щелкните Далее, назовите проект и нажмите кнопку Создать.

    Шаблон проекта содержит ссылки на пакеты NuGet для NUnit и NUnit3TestAdapter.

    NUnit NuGet dependencies in Solution Explorer

    NUnit NuGet dependencies in Solution Explorer

  4. Добавьте ссылку из проекта тестирования на проект, содержащий код, который вы хотите протестировать.

    В обозревателе решений щелкните проект правой кнопкой мыши и выберите Добавить>Ссылка. (Ссылку также можно добавить из контекстного меню узла Ссылки или Зависимости.)

  5. Добавьте код в метод теста.

    Add code to your unit test code file

    Add code to your unit test code file

  6. Запустите тест в обозревателе тестов или щелкните правой кнопкой мыши в коде теста и выберите Запустить тесты (или нажмите клавиши CTRL + R, T).

Следующие шаги