我从经典的.NET Framework Console App模板创建了一个解决方案。 之后,我转到CLI并创建一个xunit测试项目,开始执行以下命令:
dotnet new -t xunittest
dotnet restore
dotnet test
顺利,测试通过。
我保留了" src" - > "测试"据我所知,.NET Core需要的文件夹映射。 之后,我尝试在VS 2015 Update 3中添加我的测试项目,并收到错误消息: " DNX Project System软件包未正确加载。 问题可能是由配置更改或安装另一个扩展引起的。您可以通过检查本地磁盘上文件的文件路径来获取更多信息。
我上传了最新的两个活动here。
以下是单元测试项目的.json的内容:
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-192208-24"
},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
},
"imports": [
"dotnet5.4",
"portable-net451+win8"
]
}
}
}
我安装了.NET Core runtime 1.1。三天前,我设法用完全相同的步骤导入这样一个项目。今天我不能这样做。
答案 0 :(得分:1)
如果我没有弄错,根据我的(有限)经验,我发现我无法使用xUnit 1.0.1
来测试我的2.2.0 preview
.NET Core应用,并且必须使用{
"testRunner": "xunit",
....
}
我的博客是关于ASP.NET Core – MVC xUnit Integration Testing。
事后我发现了2个问题:
TL; DR:来自Blog帖子的Snipper;
最近我想测试我的新ASP.NET Core MVC应用程序,这样我就可以确定我的startup.cs配置是正确的,特别是关注它的JSON解析。
我直接遇到一些基本的绊脚石,可能会帮助那里的一些人!
第一个绊脚石试图让所有测试都被发现。
我必须选择一个测试运行器并将其添加到我的project.json的根目录中:
"dependencies": {
.....
"Taskily": "1.0.0*"
}
我最初尝试使用xunit和dotnet-test-xunit版本2.1.0,这是在撰写本文时正式发布的版本。
但由于这不支持Microsoft.NETCore.App 1.0.1,经过一段时间的Bing'ing,我发现我需要使用“dotnet-test-xunit”:“2.2.0-preview2- build1029"
第二个绊脚石试图简单地引用MVC项目,在这种情况下,“任务”。所以我添加了以下行:
root
|global.json
|---src
|---WebApplication1 <-- renamed to Taskily in .sln
|---Taskily.Tests <-- new test project
但是这给了我一个“运行时”是一个不受支持的框架错误,我不能为我的生活弄清楚。最后,事实证明是因为Taskily项目(或者至少在.sln中称为Taskily)实际上位于名为WebApplication1的文件夹中,所以我的解决方案结构看起来像这样
include /etc/nginx/sites-enabled/*;
我编译的方式是
错误信息非常不直观,并且困扰了我多年!