Framework/visual 用于单元测试 .net 标准库的工作室项目类型?

Framework/visual studio project type to use for unit testing .net standard libray?

鉴于 .net standard library 的实现由带下划线的实现(.Net framework.Net Core(windows/Linux 等)提供)。并且 API 的行为可能略有不同。 TimeZoneInfo.Id 根据 OS(我上次检查)提供不同的结果。

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

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

<TargetFramework>netcoreapp1.1</TargetFramework>

<TargetFrameworks>netcoreapp1.1;net461</TargetFrameworks>

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

虽然 VS 集成测试 运行ner 目前只会 运行 第一个框架(请参阅 this tracking issue on GitHub),但控制台上的 dotnet test 将 运行 您对所有指定配置的测试。

您也可以使用默认能够进行 运行 网络标准测试的测试平台,而不是针对多个运行时。 Nuclear.Test 可以帮助您在多个平台上对您的实施进行更完整的功能测试。