用于单元测试 .net 标准库的框架/视觉工作室项目类型?

res*_*p78 3 .net c# unit-testing .net-core .net-standard

鉴于 的实现.net standard library是由带下划线的实现提供的(.Net framework, .Net Core(windows/Linux etc) )。这些 API 的行为可能几乎没有什么不同。TimeZoneInfo.Id根据操作系统提供不同的结果(上次我检查过)。

那么,如何进行单元测试?在visual studio中,我们可以创建一个.Net Core xUnit项目或.Net Framework xUnit项目。如何xUnit在两个不同的环境中运行相同的测试?

Mar*_*ich 5

最简单的方法是多目标测试项目。即,从模板创建一个 .NET Core xUnit 项目并更改

<TargetFramework>netcoreapp1.1</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

<TargetFrameworks>netcoreapp1.1;net461</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)

请注意s此处更改为复数/附加。复数形式允许您指定多个目标框架进行测试,因此您可以轻松添加 .NET Core 和 .NET Standard 的多个版本。

虽然集成 VS 的测试运行器目前仅运行第一个框架(请参阅GitHubdotnet test上的此跟踪问题),但在控制台上将在所有指定的配置上运行您的测试。