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


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

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

Типы тестов

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

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

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

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

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

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

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

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

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

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

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

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

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

Тестовая платформа — это подсистема, которая выполняет тесты и взаимодействует с такими инструментами, как IDEs и CLI.

Используйте обзор тестовых платформ , чтобы понять различия между VSTest и Microsoft.Testing.Platform и выбрать оптимальную платформу для вашего сценария.

Рекомендации по миграции см. в разделе "Миграция из VSTest в Microsoft.Testing.Platform".

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

Платформа тестирования построена на основе тестовой платформы. Он определяет набор атрибутов и 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 — это project фонда .NET и действует в соответствии с его кодексом поведения. Она поддерживает КАК VSTest, так и Microsoft.Testing.Platform

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

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

интерфейс командной строки .NET

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

ИСР

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

См. также

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