MS Test(Microsoft Test Framework)是微软提供的一个用于.NET应用程序的单元测试框架。以下是一个使用MS Test进行单元测试的示例,该示例将涵盖测试的基本步骤和概念。
项目搭建
在VS Code中开发C#时,创建solution(解决方案)和project(项目)的步骤相对直接,主要依赖于.NET CLI(命令行接口)和VS Code的扩展功能。以下是详细的步骤:
创建Solution
- 打开VS Code:
- 启动VS Code,并创建一个新的工作区或打开一个已存在的文件夹作为工作区。
- 打开终端:
- 在VS Code中,通过`Ctrl+``(反引号)打开集成的终端。
- 创建Solution:
- 使用.NET CLI命令
dotnet new sln
来创建一个新的解决方案。您可以通过-n
参数指定解决方案的名称,但如果不指定,则默认为当前文件夹的名称加上.sln
后缀。例如:
- 使用.NET CLI命令
dotnet new sln -n MyCSharpSolution
如果不指定`-n`,则在当前目录下生成一个名为`MySolution.sln`的解决方案文件(假设当前文件夹名为MySolution)。
创建Project
- 创建项目:
- 在同一终端中,使用
dotnet new
命令来创建一个新的项目。可以根据需要选择不同的项目模板,如console
(控制台应用程序)、classlib
(类库)等。例如,创建一个控制台应用程序:
- 在同一终端中,使用
dotnet new console -n MyProject -o ./MyProject
这里`-n`指定了项目名称,`-o`指定了项目目录。
- 将项目添加到Solution:
- 使用
dotnet sln add
命令将新创建的项目添加到解决方案中。例如:
- 使用
dotnet sln MyCSharpSolution.sln add ./MyProject/MyProject.csproj
这里`MySolution.sln`是解决方案文件的名称,`./MyProject/MyProject.csproj`是项目文件的路径。
配置和调试
- 配置调试:
- VS Code可能会自动为C#项目生成
launch.json
和tasks.json
文件,这些文件用于配置调试和编译任务。可以在.vscode
文件夹中找到这些文件,并根据需要进行修改。
- VS Code可能会自动为C#项目生成
- 启动调试:
- 在VS Code中,使用侧边栏中的“运行和调试”视图,点击绿色的“开始调试”按钮或按
F5
键来启动调试会话。确保在launch.json
中正确配置了调试配置。
- 在VS Code中,使用侧边栏中的“运行和调试”视图,点击绿色的“开始调试”按钮或按
- 编写和测试代码:
- 现在,可以在项目中编写C#代码,并使用VS Code的调试功能来测试代码。
测试示例场景
假设有一个简单的类Calculator
,它包含一个加法方法Add
,现在需要为这个加法方法编写单元测试。
在项目中添加Calculator
类,内容如下:
using System;
namespace Calculator
{
public class Calculator
{
public int Add(int a, int b)
{ return a + b; }
}
}
创建测试项目
可以使用命令行的方式创建测试项目:
在解决方案中,添加一个新的MSTest测试项目。
dotnet new console -n MyProject.Tests -o ./MyProject.Tests
将测试项目添加到 Solution
dotnet sln MyCSharpSolution.sln add ./MyProject.Tests/MyProject.Tests.csproj
这里推荐在VS Code的Solution 中直接添加MS Test的项目,操作方式是在Solution 上点击 Create Project 的按钮,接着在命令框中选择MSTest Test Project.
步骤 添加项目引用
将测试项目与被测项目(即包含Calculator
类的项目)关联起来。
在左侧的 “SOLUTION EXPLORER”选中测试项目,右击“依赖项”或“引用”,选择“添加项目引用”,
选择原项目
编写测试类和方法
在测试项目中,创建一个新的测试类,并使用MSTest的[TestClass]
和[TestMethod]
属性来标记测试类和测试方法。
namespace MyProject.Tests;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CalculatorNamespace; // 引入被测项目的命名空间
[TestClass]
public class CalculatorTests
{
[TestMethod]
public void Add_TwoNumbers_ReturnsCorrectSum()
{
// Arrange
Calculator calculator = new Calculator();
int a = 5; int b = 7;
int expected = 12; // Act
int actual = calculator.Add(a, b);
// Assert
Assert.AreEqual(expected, actual, "The sum of 5 and 7 should be 12.");
}
}
步骤 5: 运行测试
在Visual Studio中,你可以使用“测试资源管理器”来运行和查看测试结果。右击测试方法或测试类,选择“运行选中的测试”或“运行所有测试”。
在 Test Result 可以看到运行的结果。
命令行运行测试
如果希望在命令行中运行测试,可以使用dotnet test
命令(对于.NET Core或.NET 5/6/7等较新版本的项目)。首先,确保你的测试项目是一个.NET Core或.NET SDK风格的项目,并且已经包含了必要的NuGet包(如Microsoft.NET.Test.Sdk
、MSTest.TestAdapter
和MSTest.TestFramework
)。
打开命令行工具(如CMD、PowerShell或终端),导航到包含测试项目文件的目录,然后运行:
dotnet test
这将编译测试项目,运行所有测试,并显示测试结果。