Asp.net mvc 为什么可以';你找不到我的DNX测试?

Asp.net mvc 为什么可以';你找不到我的DNX测试?,asp.net-mvc,asp.net-core-mvc,xunit.net,dnx50,Asp.net Mvc,Asp.net Core Mvc,Xunit.net,Dnx50,我正在启动一个新的ASP.net vNext/MVC6项目,我想使用xUnit来测试它 我一直在关注DNX项目 当我尝试使用内置运行程序或ReSharper在Visual Studio中运行测试时,会收到以下错误消息: 如果我尝试从命令行运行测试,我会得到以下结果: xUnit.net DNX Runner (32-bit DNX 4.5.1) Discovering: TA.Product.Tests Discovered: TA.Product.Tests Starting:

我正在启动一个新的ASP.net vNext/MVC6项目,我想使用xUnit来测试它

我一直在关注DNX项目

当我尝试使用内置运行程序或ReSharper在Visual Studio中运行测试时,会收到以下错误消息:

如果我尝试从命令行运行测试,我会得到以下结果:

xUnit.net DNX Runner (32-bit DNX 4.5.1) Discovering: TA.Product.Tests Discovered: TA.Product.Tests Starting: TA.Product.Tests TA.Product.Tests.Class1.FactMethodName [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\VS-Projects\TA.Product\src\TA.Product.Tests\Class1.cs(25,0): at TA.Product.Tests.Class1.FactMethodName() Finished: TA.Product.Tests === TEST EXECUTION SUMMARY === TA.Product.Tests Total: 1, Errors: 0, Failed: 1, Skipped: 0, Time: 2.216s 我发现,我的xUnit runner版本似乎与我的DNX版本RC1-Update1匹配

我还发现,我的测试必须是公开的,而且是公开的


当您从命令行运行dnx测试并获得以下结果时,请提供一个想法:

Finished:    TA.Product.Tests
=== TEST EXECUTION SUMMARY ===
   TA.Product.Tests  Total: 1, Errors: 0, Failed: 1, Skipped: 0, Time: 2.216s
…这实际上是一次成功的测试运行。唯一的问题是你的1级考试不及格

我想象,当它“崩溃”时,您正试图使用ReSharper xUnit runner扩展运行。该运行程序当前(从rc1开始)不会使用DNX项目,因为R#会在编译后的测试程序集不存在的位置查找该测试程序集。尝试禁用resharper xUnit runner扩展,改为从默认的Visual Studio测试资源管理器运行测试。它应该会起作用


然后,当您需要运行测试时,不要使用任何R#按钮或快捷方式。使用内置的VS-test按钮和命令(或者从命令行运行
dnx-test
,应该快得多)。一旦找到答案,就可以为其他非DNX项目重新启用R#xunit运行程序。

因此这不是完整的答案,但我知道R#的xunit测试运行程序扩展无法运行DNX测试,因为它在错误的位置查找dll。
Class1
的第25行(在
FactMethodName
方法中)是什么样子的?@danludwig我不确定这行是什么,但你的观点很有道理。所以R#runner找不到测试,因为编译器没有发出任何输出文件,对吗?这一切都是用aspnet5在内存中完成的。所以我实际上看到的是两个不同的问题。看起来我的代码导致了NullReferenceException。没错。第二个测试是从命令行运行
dnx测试
,它不会崩溃,它会成功并告诉您有一个测试失败。您可以将项目设置为发出输出文件(程序集dll),但R#仍不会在默认情况下生成的位置查找它。不过,它应该与默认的VS 2015测试资源管理器配合使用。@danludwig Yep,就是这样。哦!MSTest可以运行测试了好吧,我开始有点脱离R#单元测试运行程序了。。。
Finished:    TA.Product.Tests
=== TEST EXECUTION SUMMARY ===
   TA.Product.Tests  Total: 1, Errors: 0, Failed: 1, Skipped: 0, Time: 2.216s