如何正确实现 .net 标准库的单元测试

J.P*_*ini 5 c# unit-testing .net-standard-2.0

所以就我从我的研究中所了解的而言。.net 标准库不能单独使用,因此需要通过不同的框架进行测试,使用 .net Framework 或 .net Core参考。我就是这么解释的。现在我正在尝试创建一个标准库,因为我需要它尽可能在大多数设备上兼容,问题是我不知道如何正确创建单元测试。每次创建 MSTest 项目时,都会出现以下错误:

测试运行将使用为框架 .NETCoreApp、Version=v1.0 和平台 X64 构建的 DLL。以下 DLL 与框架/平台设置不匹配。Otchi.Ebml.Tests.dll 是为 Framework 2.1 和 Platform AnyCPU 构建的。

我对不同的体系结构和其他设置进行了大量试验,但似乎没有任何方法可以消除该警告。我是做错了什么,还是有不同的、更合适的方法来为标准库创建单元测试

Zak*_*iaz 5

.NET 标准库不包含执行所需的组件。它只定义执行模式。当您部署到特定的机器/处理器架构时,代码必须知道要执行的指令集。

这就是 .NET 框架和 .NET 核心发挥作用的地方。.NET 框架包含 Microsoft Windows 操作系统支持的指令集的执行细节。同样,.NET 核心包含 Windows 本身不支持的其他体系结构的指令集。

要编写单元测试,您需要在 .NET 或 .NET core 中创建一个新项目来执行您的代码。如果您想涵盖所有基础,或者如果您有一些针对不同架构编译不同的二进制文件(想到第三方库),那么您可能需要对多个发行版进行单元测试。

您的库应该是一个独立的库。您应该在更新库之前执行单元测试,以验证输入到库中的代码是否通过。这样,在此之后使用该库的任何人都可以确信它会起作用。