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 可以帮助您在多个平台上对您的实施进行更完整的功能测试。
鉴于 .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 可以帮助您在多个平台上对您的实施进行更完整的功能测试。