当您拥有.NET标准库时,测试项目需要以实际平台为目标。最合乎逻辑的选择(我假设)是针对.NET Core,因为它运行在多个操作系统上,但也可以定位多个平台as demonstrated in the xUnit.net documentation:
使用单个测试项目,我们可以针对多个目标框架运行测试。打开.csproj文件并更改:
<PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup>
对此:
<PropertyGroup> <TargetFrameworks>net452;netcoreapp2.1</TargetFrameworks> </PropertyGroup>
这样做是否有任何实际原因,即是否存在需要您定位多个平台的情况?
我能想到的唯一原因是要了解特定平台中的错误,这在.NET Framework中已经发生了几次。但感觉就像你会测试平台而不是你的库,所以我不确定这是否足够好。
答案 0 :(得分:1)
我认为这是有道理的唯一原因是你担心平台API在.NET Framework和.NET Core之间表现不同。
在大多数情况下,API在不同平台上的行为相同,但可能会出现轻微差异的情况。其中一些差异记录在案here。
答案 1 :(得分:0)
如果创建NETStandard
库,则应考虑在希望看到其使用的每个target platform
和runtime version
上运行测试。
如果您打算发布您的库,则不能确定谁会在哪种情况下引用它。
目标平台之间不仅存在差异,而且实现细节也从同一平台的一个版本更改为另一个版本(请参见this example)。
这并不是测试平台,而是测试您的库是否可以很好地与平台配合使用。