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


Тестирование в .NET

В этой статье представлена концепция тестирования и показано, как можно использовать различные виды тестов для проверки кода. Различные средства доступны для тестирования приложений .NET, такие как .NET CLI или интегрированные среды разработки (IDEs).

Типы тестов

Автоматизированные тесты — это отличный способ убедиться, что код приложения работает так, как задумали его авторы. В этой статье рассматриваются модульные тесты, тесты интеграции и нагрузочные тесты.

Модульные тесты

Модульный тест — это тест, который проверяет отдельные компоненты программного обеспечения или методы, также известный как "единица тестирования". Модульные тесты должны тестировать только код, находящийся под контролем разработчика. Они не проверяют проблемы инфраструктуры. Проблемы инфраструктуры включают взаимодействие с базами данных, файловыми системами и сетевыми ресурсами.

Дополнительные сведения о создании модульных тестов см. в разделе средства тестирования.

Тесты интеграции

интеграционный тест отличается от модульного теста тем, что проверяет способность двух или более компонентов программного обеспечения работать вместе, что также называется их "интеграцией". Эти тесты охватывают более широкий аспект системы, в то время как модульные тесты сосредоточены на отдельных компонентах. Часто тесты интеграции включают проблемы инфраструктуры.

Нагрузочные тесты

Цель нагрузочного теста — определить, может ли система обрабатывать указанную нагрузку. Например, количество одновременных пользователей, использующих приложение, и возможность приложения обрабатывать взаимодействия быстро. Для получения дополнительной информации о нагрузочном и стресс-тестировании веб-приложений см. нагрузочное и стресс-тестирование ASP.NET Core.

Рекомендации по тестированию

Помните, что существуют рекомендации для написания тестов. Например, разработка через тестирование (TDD) — это когда модульный тест пишется перед кодом, который он должен проверять. TDD похож на создание плана книги перед её написанием. Модульный тест помогает разработчикам писать более простой, читаемый и эффективный код.

Средства тестирования

При выполнении тестов в .NET используются два компонента: тестовая платформа и платформа тестирования.

Тестовые платформы

Тестовая платформа — это подсистема, которая выполняет тесты и выступает в качестве канала обмена данными с idEs. Например, Visual Studio может отправить запрос на обнаружение на тестовую платформу, чтобы он смог отобразить доступные тесты в обозревателе тестов. Тестовая платформа отвечает интегрированной среде разработки, сообщая найденные тесты. Аналогичное взаимодействие происходит для выполнения теста.

VSTest уже много лет используется в .NET и является единственной тестовой платформой в экосистеме. В начале 2024 года была выпущена первая стабильная версия новой тестовой платформы, называемой Microsoft.Testing.Platform (MTP).

Тестовые платформы

Платформа тестирования построена на основе тестовой платформы. Он определяет набор атрибутов и API, доступных вам, в качестве тестового автора. Обычно он работает с помощью тестового адаптера, который выступает в качестве уровня связи между платформой тестирования и тестовой платформой. Популярными платформами тестирования являются MSTest, NUnit, TUnit и xUnit.net.

MSTest

MSTest — это платформа тестирования Майкрософт для всех языков .NET. Он расширяем и работает с .NET CLI, Visual Studio, Visual Studio Code и Rider. Она поддерживает как VSTest, так и Microsoft.Testing.Platform.

Дополнительные сведения см. в следующих ресурсах:

NUnit

NUnit — это платформа модульного тестирования для всех языков .NET. Первоначально NUnit был перенесен из JUnit, и текущий рабочий выпуск был перезаписан с множеством новых функций и поддержкой широкого спектра платформ .NET. Это проект .NET Foundation. Она поддерживает как VSTest, так и Microsoft.Testing.Platform.

Дополнительные сведения см. в следующих ресурсах:

TUnit

TUnit полностью построен на основе Microsoft.Testing.Platform и не поддерживает VSTest. Дополнительные сведения см. в документации по TUnit.

xUnit.net

xUnit.net — это бесплатное средство модульного тестирования с открытым кодом, ориентированное на сообщество для .NET. Оригинальный изобретатель NUnit v2 написал xUnit.net. xUnit.net является последней технологией для модульных тестов приложений .NET. Он также работает с ReSharper, CodeRush и TestDriven.NET. xUnit.net является проектом .NET Foundation и работает в соответствии с его кодексом поведения. Она поддерживает КАК VSTest, так и Microsoft.Testing.Platform

Дополнительные сведения см. в следующих ресурсах:

Выполнение тестов

.NET CLI

Можно запускать модульные тесты из всех тестовых проектов в решении, используя инструмент .NET CLI с командой dotnet test. Интерфейс командной строки .NET предоставляет большую часть функциональных возможностей, которые интегрированные среды разработки (IDEs) доступны через пользовательские интерфейсы. Интерфейс командной строки .NET является кроссплатформенным и доступен для использования в рамках конвейеров непрерывной интеграции и доставки. Интерфейс командной строки .NET используется с скриптами для автоматизации распространенных задач.

ИСР

Независимо от того, используется ли visual Studio, Visual Studio Code или Rider, существуют графические пользовательские интерфейсы для тестирования функциональных возможностей. Существует больше возможностей, доступных для idEs, чем интерфейс командной строки, например Live Unit Testing. Дополнительные сведения см. в статье Включение и исключение тестов с помощью Visual Studio.

См. также

Дополнительные сведения см. в следующих статьях: