Say*_*ndo 7 .net c# unit-testing azure-functions .net-standard
我有一个项目,我使用Azure Durable Functions,它们仅在.NET Standard 2上可用.因此,它定义了哪些类库可用于测试项目.但是,我无法组合一个库,其中xUnit,NUnit或MSTest用于单元/集成测试.
将NUnit添加到.NET Standard 2为类库的项目失败,并显示以下错误:
信息:为C:\ VSTS\github.com \netstandardXunitMsTestNunit\src\Netstandard2xUnitMsTestnUnit \nunit \nunit.csproj恢复包... DEBUG:恢复.NETStandard的包,版本= v2.0 ... DEBUG:解决冲突. NETStandard,Version = v2.0 ...错误:检测到周期.nunit - > NUnit(> = 3.9.0).DEBUG:检查.NETStandard上的软件包兼容性,版本= v2.0.DEBUG:使用.NETStandard检查nunit 1.0.0的兼容性,版本= v2.0.
xUnit的错误是相同的(只是关于xUnit循环的错误消息).
这两个错误也可以在Rider和Visual Studio 2017 Enterprise中重现.我清理nuget缓存后再次尝试了.结果是一样的.
对于MsTest,可以添加ms测试库,但测试发现既不适用于Rider也不适用于Visual Studio.
甚至可以对.NET Standard 2库进行单元测试吗?
除了等待这些项目获取.NET Standard 2之外,我还能做些什么吗?
我创建了一个小样本项目,可以在这里找到:https://github.com/SayusiAndo/netstandard2xunitresharper
谢谢你的帮助!
Nig*_*888 15
有没有运行的.NET标准,所以它不会执行你的测试.
您的测试程序集必须以可执行平台为目标,例如.NET Framework或.NET Core的版本.
<TargetFramework>net470</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
要么
<TargetFramework>netcoreapp2.0</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅在不同框架上运行.NET Standard二进制文件.
.NET Standard 是一种规范,每个 .NET Standard 版本(例如 .NET Framework、.NET Core 和 Xamarin)都定义了所有 .NET 实现必须提供的 API 集以符合该版本。您的库的 TargetFramework 值为 netstandard2.0,这意味着您不仅可以从 .NET Core 应用程序引用逻辑库,还可以从为 .NET Framework 或 Xamarin 构建的应用程序引用逻辑库。
但是,您无法为其构建应用程序,只能构建库。这是关于 .NET Standard的MSDN 文档。
因此,如果要测试库,则需要指定库支持的目标。如果你想支持多个 .NET 版本,那么你应该测试它们以确保你的库可以在这些目标上正确运行。这是目标框架的配置.csproj:
单一目标:
<TargetFramework>net461</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
多个目标:
<TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)
小智 5
| 归档时间: |
|
| 查看次数: |
6539 次 |
| 最近记录: |