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