通过


在 .NET 中进行测试

本文介绍了测试的概念,并说明了如何使用不同类型的测试来验证代码。 各种工具可用于测试.NET应用程序,例如 .NET CLIIntegrated 开发环境(IDE)

测试类型

自动测试是确保应用程序代码执行其作者意图的好方法。 本文介绍单元测试、集成测试和负载测试。

单元测试

单元测试 是一种测试,用于练习各个软件组件或方法,也称为“工作单元”。单元测试应仅测试开发人员控件中的代码。 它们不测试基础结构问题。 基础结构问题包括与数据库、文件系统和网络资源交互。

有关创建单元测试的详细信息,请参阅 测试工具

集成测试

集成测试 不同于单元测试,因为它练习了两个或多个软件组件协同工作的能力,也称为“集成”。这些测试在测试中的系统范围更广,而单元测试侧重于各个组件。 通常,集成测试确实包括基础结构问题。

负载测试

负载测试 旨在确定系统是否可以处理指定的负载。 例如,同时使用应用程序的用户数量以及应用程序以响应方式处理交互的能力。 有关 Web 应用程序的负载测试的详细信息,请参阅 ASP.NET Core 负载/压力测试

测试注意事项

请记住,可以使用编写测试的最佳做法。 例如,测试驱动开发(TDD) 是指在编写要测试的代码之前,先编写单元测试。 TDD 就像是在写书之前先创建一本书的大纲。 单元测试可帮助开发人员编写更简单、可读且高效的代码。

测试工具

在.NET中运行测试时,涉及两个组件:测试平台和测试框架。

测试平台

测试平台是运行测试和与 IDE 和 CLI 等工具通信的引擎。

使用 测试平台概述 了解 VSTest 与 Microsoft.Testing.Platform 之间的差异,并为方案选择最佳平台。

有关迁移指南,请参阅 从 VSTest 迁移到 Microsoft.Testing.Platform

测试框架

测试框架基于测试平台构建。 它定义一组可供你使用的属性和 API,作为测试作者。 它通常由测试适配器提供支持,该适配器充当测试框架和测试平台之间的通信层。 常用的测试框架是 MSTest、NUnit、TUnit 和 xUnit.net。

MSTest

MSTest是所有.NET语言的Microsoft测试框架。 它可扩展,适用于 .NET CLI、Visual Studio、Visual Studio Code 和 Rider。 它支持 VSTest 和 Microsoft.Testing.Platform。

有关详细信息,请参阅以下资源:

NUnit

NUnit是适用于所有.NET语言的单元测试框架。 最初,NUnit 已从 JUnit 移植,并且当前生产版本已重写,其中包含许多新功能,并支持各种.NET平台。 这是.NET基金会的一个项目。 它支持 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的project,根据其行为准则进行作。 它支持 VSTest 和 Microsoft.Testing.Platform

有关详细信息,请参阅以下资源:

运行测试

.NET CLI(.NET命令行界面)

可以使用 .NET CLIdotnet test 命令从解决方案中的所有测试项目运行单元测试。 .NET CLI 公开了Integrated 开发环境(IDE)通过用户界面提供的大部分功能。 .NET CLI 是跨平台的,可以作为持续集成和交付管道的一部分使用。 .NET CLI 与脚本化过程一起使用,以自动执行常见任务。

IDE

无论是使用 Visual Studio、Visual Studio Code 还是 Rider,都有用于测试功能的图形用户界面。 IDE 提供的功能比 CLI 更多,例如,Live Unit Testing。 有关详细信息,请参阅 使用 Visual Studio 包含和排除测试

另请参阅

有关详细信息,请参阅以下文章: