如何在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"

浙公网安备 33010602011771号