dotnet hello world

参考资料

dotnet 命令参考

使用 dotnet test 和 xUnit 在 .NET 中对 C# 进行单元测试

Declaring InternalsVisibleTo in the csproj

XUnit输出消息

创建控制台项目

# 创建项目目录
md DotnetStudy
cd DotnetStudy

# 创建解决方案
dotnet new sln
# 创建控制台项目,-n: 名称,--use-program-main: 不适用顶级语句
dotnet new console -n HelloDotnet --use-program-main
# 将项目添加到解决方案
dotnet sln add HelloDotnet\HelloDotnet.csproj
# 编译
dotnet build --configuration Release
# 运行
dotnet run --configuration Release --project HelloDotnet\HelloDotnet.csproj

添加一个类

namespace HelloDotnet
{
    internal class Calc
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

添加单元测试项目

# 创建 xunit 项目
dotnet new xunit -o HelloDotnet.Tests
# 将 xunit 项目添加到解决方案
dotnet sln add HelloDotnet.Tests\HelloDotnet.Tests.csproj
# 将控制台项目作为依赖添加到 xunit 项目
dotnet add HelloDotnet.Tests\HelloDotnet.Tests.csproj reference HelloDotnet\HelloDotnet.csproj

设置单元测试可访问 internal

<Project Sdk="Microsoft.NET.Sdk">

	<PropertyGroup>
		<OutputType>Exe</OutputType>
		<TargetFramework>net8.0</TargetFramework>
		<ImplicitUsings>enable</ImplicitUsings>
		<Nullable>enable</Nullable>
	</PropertyGroup>

	<!-- 设置单元测试可访问 internal -->
	<ItemGroup>
		<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
			<_Parameter1>HelloDotnet.Tests</_Parameter1>
		</AssemblyAttribute>
	</ItemGroup>
</Project>

单元测试代码

namespace HelloDotnet.Tests;

public class UnitTest1
{
    [Fact]
    public void Test1()
    {
        Calc calc = new();
        Assert.Equal(3, calc.Add(1, 2));
    }
}

运行单元测试

dotnet test HelloDotnet.Tests\HelloDotnet.Tests.csproj

关于单元测试的输出

using Xunit.Abstractions;

namespace HelloDotnet.Tests;

public class UnitTest1
{

    ITestOutputHelper output;

    public UnitTest1(ITestOutputHelper output)
    {
        this.output = output;
    }

    [Fact]
    public void Test1()
    {
        output.WriteLine("add test");
        Calc calc = new();
        Assert.Equal(3, calc.Add(1, 2));
    }
}

image

gitignore

dotnet new gitignore
posted @ 2024-08-03 22:41  潼关路边的一只野鬼  阅读(4)  评论(0编辑  收藏  举报