.net core 用xUnit测试.Net核心库
我正在创建一个.net core 用xUnit测试.Net核心库,.net-core,xunit,xunit.net,project.json,.net Core,Xunit,Xunit.net,Project.json,我正在创建一个ASP.Net Core应用程序可以使用的.Net Core库。默认情况下,Visual Studio创建project.json,如下所示 { "dependencies": { "NETStandard.Library": "1.6.0" }, "frameworks": { "netstandard1.6": { "imports": "dnxcore50" } }, "version": "1.0.0-*" } 我
ASP.Net Core
应用程序可以使用的.Net Core库。默认情况下,Visual Studio创建project.json,如下所示
{
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
},
"version": "1.0.0-*"
}
我认为建议对其他应用程序使用的库使用netstandard1.x
。我将删除“导入”:“dnxcore50”
,因为这是用于较旧的.NET Core预览版本(在.NET Core 1.0 RTM和.NET Core RC2发布之前)
现在,我想使用xunit
对这个库进行单元测试,因此遵循了本文
然而,xunit建议将该库标记为.Net核心应用程序
你可能已经注意到,我们在这里做的部分工作就是给你的班级打分
作为.NET核心应用程序的库(netcoreapp1.0框架)。什么时候
使用.NET CLI进行测试时,单元测试项目实际上是一个
应用程序*,而不是类库。如果你忘了做这个改变,
编译器将告诉您dotnet test xunit不兼容
使用类库项目。我们告诉VisualStudio生成一个
类库,因为它最接近我们想要的
项目结构
- 应用程序的主要功能由xUnit.net运行程序提供,而不是由您提供
因此,我已经按照建议更新了project.josn,并且能够运行单元测试。不过,我有问题:
1> 当.Net核心库可以被其他应用程序使用时,是否建议将该库的目标框架从netstandard1.6
更改为netcoreapp1.0
?您将有一个项目(和project.json)专用于您的测试项目
您需要将测试项目标记为.NET核心应用程序,因为它实际上将被执行。
无需将作为库的目标项目更改为核心应用程序
在这里你可以看到
这里是