当您拥有 .NET 标准库时,测试项目需要针对实际平台。最合乎逻辑的选择(我认为)是针对 .NET Core,因为它在多个操作系统上运行,但也可以针对多个平台 as demonstrated in the xUnit.net documentation :
With a single test project, we can have our tests run against multiple target frameworks. Open the .csproj file and change this:
<PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup>
To this:
<PropertyGroup> <TargetFramework>net452;netcoreapp2.1</TargetFramework> </PropertyGroup>
这样做是否有任何实际原因,即是否存在需要您针对多个平台的情况?
我能想到的唯一原因是要注意特定平台中的错误,这种错误在 .NET Framework 中已经发生过几次。但这感觉就像您将测试平台而不是库,所以我不确定这是否是一个足够好的理由。
最佳答案
我认为这样做有意义的唯一原因是,如果您担心 .NET Framework 和 .NET Core 之间的平台 API 行为不同。
在大多数情况下,API 跨平台的行为相同,但在某些情况下可能存在细微差异。其中一些差异已记录在案 here .
关于testing - .NET Standard 库的单元测试项目是否应该针对 .NET Core 以外的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50839162/