Testing 针对.NET标准库的单元测试项目是否应该以.NET核心以外的框架为目标?

Testing 针对.NET标准库的单元测试项目是否应该以.NET核心以外的框架为目标?,testing,.net-standard,Testing,.net Standard,当您拥有.NET标准库时,测试项目需要以实际平台为目标。最合理的选择(我认为)是针对.NET Core,因为它运行在多个操作系统上,但也可以针对多个平台: 通过单个测试项目,我们可以针对多个目标框架运行测试。打开.csproj文件并更改: <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> netcoreapp2.1 为此: &

当您拥有.NET标准库时,测试项目需要以实际平台为目标。最合理的选择(我认为)是针对.NET Core,因为它运行在多个操作系统上,但也可以针对多个平台:

通过单个测试项目,我们可以针对多个目标框架运行测试。打开.csproj文件并更改:

<PropertyGroup>
  <TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

netcoreapp2.1
为此:

<PropertyGroup>
  <TargetFrameworks>net452;netcoreapp2.1</TargetFrameworks>
</PropertyGroup>

net452;netcoreapp2.1
这样做是否有实际原因,即是否存在需要针对多个平台的情况


我能想到的唯一原因是要注意特定平台中的bug,这在.NETFramework中已经发生过几次。但这感觉就像是在测试平台而不是库,所以我不确定这是否是一个足够好的理由。

我认为这有意义的唯一原因是,如果您担心.NET Framework和.NET Core之间的平台API行为不同


在大多数情况下,API在不同平台上的行为是相同的,但在某些情况下可能存在细微差异。有些差异被记录。

如果你创建了<代码> NETStase库,你应该考虑在每个<代码>目标平台< /代码>和<代码>运行时版本上运行测试,这些代码是你希望看到的。 如果您计划发布您的库,您无法确定在哪个场景中谁将引用它

目标平台之间不仅存在差异,而且同一平台的不同版本之间的实现细节也在不断变化(请参阅)


这与其说是测试平台,不如说是测试你的库是否能很好地使用平台。

死链接,显然他们整合了github repos