如何在vscode中为c#编写单元测试
如何在vscode中为c#编写单元测试
如何从零开始创建一个单元测试工程
- 创建测试单元工程
创建测试文件的方法和新建项目类似,都是使用dotnet new
命令。
dotnet new xunit
- 为测试单元工程添加需要测试的工程的项目引用
dotnet add reference ..\program\program.csproj
- 为sln文件添加测试单元工程的项目引用
dotnet sln add ..\program.test\program.test.csproj
文件的目录结构应大致如下树状图所示。
project/
├─program/
│ ├─src/
│ └─program.csproj
├─program.test/
│ ├─src/
│ └─program.test.csproj
└─program.sln
- 运行测试单元
dotnet test
单元测试中如何输出日志
Q:xUnit为什么没有办法直接打印输出?
A:xUnit的测试会新开一个进程进行测试,因此运行
dotnet test
命令的进程没有办法捕获xUnit进程的输出。
在测试代码中添加ITestOutputHelper
接口,并在构造函数中将其初始化,之后使用该接口的WriteLine方法输出文本。
using Xunit;
using Xunit.Abstractions;
public class MyTestClass
{
// 定义接口
private readonly ITestOutputHelper output;
public MyTestClass(ITestOutputHelper output)
{
// 初始化接口
this.output = output;
}
[Fact]
public void MyTest()
{
var temp = "my class!";
output.WriteLine("This is output from {0}", temp);
}
}
在这里要注意的是,vscode中如果想要看到标准输出,需要在dotnet test
命令后添加额外的参数--logger "console;verbosity=detailed"
,也就是运行以下命令。
dotnet test --logger "console;verbosity=detailed"
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤