我在Visual Studio 2015中创建了一个ASP.NET 5项目,使用了预览模板。我通过NuGet安装了XUnit,并在解决方案中添加了一个“xUnit测试项目(DNX)”。
但是我的“测试资源管理器”为空,即使我在Class1.cs中有一个公共的“Fact”测试方法。当我“运行所有测试”时,“测试”输出窗口为空白。我的“生成”输出窗口显示有2个项目构建成功。(我的ASP.NET 5项目和xUnit项目)
然而,当我构建或清理解决方案时,在“测试”输出窗口中会出现以下消息:
------ Discover test started ------
------ Test started: Project: MyProjectTest ------
Starting Microsoft.Dnx.TestHost [C:\Users\xxxxxx\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\dnx.exe --appbase "C:\Users\xxxxxx\Documents\GitForWindows\Repositories\MySolution\MyProjectTest" Microsoft.Dnx.ApplicationHost --port 8424 Microsoft.Dnx.TestHost --port 8458 --parentProcessId 17312]
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Dnx.TestHost.Program.<>c__DisplayClass2_0.<<Main>b__0>d.MoveNext()
Unable to start Microsoft.Dnx.TestHost
========== Discover test finished: 0 found (0:00:01.057196) ==========
我的解决方案 DNX SDK 版本是根据两个项目的属性窗口为1.0.0-rc1-update1。我也通过 dnvm 将其设置为“活动”运行时,并没有改变上述行为。我不明白有关从命令行运行 DNX 的说明,因此这可能是一个起点?
但是,当我尝试将 DNX SDK 切换到 1.0.0-beta5 版本并清理解决方案时,我会得到:
------ Discover test started ------
------ Test started: Project: MyProjectTest ------
Starting Microsoft.Framework.TestHost [C:\Users\xxxxx\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta5\bin\dnx.exe --appbase "C:\Users\xxxxxx\Documents\GitForWindows\Repositories\MySolution\MyProjectTest" Microsoft.Framework.ApplicationHost --port 9737 Microsoft.Framework.TestHost --port 9770 --parentProcessId 16732]
System.InvalidOperationException: Failed to resolve the following dependencies for target framework 'DNX,Version=v4.5.1':
xunit 2.1.0
xunit.runner.dnx 2.1.0-beta6-build191
Searched Locations:
C:\Users\xxxxx\Documents\GitForWindows\Repositories\MySolution\{name}\project.json
C:\Users\xxxxx\Documents\GitForWindows\Repositories\MySolution\src\{name}\project.json
C:\Users\xxxxx\Documents\GitForWindows\Repositories\MySolution\test\{name}\project.json
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\{name}.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\{name}.dll
C:\Windows\Microsoft.NET\assembly\GAC_32\{name}\{version}\{name}.dll
C:\Windows\Microsoft.NET\assembly\GAC_64\{name}\{version}\{name}.dll
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\{name}\{version}\{name}.dll
Try running 'dnu restore'.
at Microsoft.Framework.Runtime.DefaultHost.GetEntryPoint(String applicationName)
at Microsoft.Framework.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
at Microsoft.Framework.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at dnx.host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env)
at dnx.host.RuntimeBootstrapper.ExecuteAsync(String[] args)
at dnx.host.RuntimeBootstrapper.Execute(String[] args)
Unable to start Microsoft.Framework.TestHost
========== Discover test finished: 0 found (0:00:01.4699978) ==========
运行DNU恢复并没有解决任何问题。
编辑:如所请求,这是project.json:
{
"version": "1.0.0-*",
"description": "",
"authors": [ "" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.dnx": "2.1.0-beta6-build191"
},
"commands": {
"test": "xunit.runner.dnx"
},
"frameworks" : {
"dnx451": { },
"dnxcore50" : {
"dependencies": {
"System.Collections": "4.0.11-beta-23225",
"System.Linq": "4.0.1-beta-23225",
"System.Threading": "4.0.11-beta-23225",
"Microsoft.CSharp": "4.0.1-beta-23225"
}
}
}
}