C# 为什么ReSharper 8测试运行程序会在这个规范上崩溃?

C# 为什么ReSharper 8测试运行程序会在这个规范上崩溃?,c#,resharper,mspec,C#,Resharper,Mspec,我有一组使用MSpec运行的测试。前两个测试运行正常,但当我包括第三个测试时,测试运行程序在运行任何测试之前会崩溃并出现NullReferenceException: 因为=()=>\u result=Subject.GetReport(fooreptype); 它应该返回\u a\u success=()=>\u result.Successful.ShouldBeTrue(); 它应该返回\u something=()=>\u result.Data.shouldbenull(); //此测

我有一组使用MSpec运行的测试。前两个测试运行正常,但当我包括第三个测试时,测试运行程序在运行任何测试之前会崩溃并出现NullReferenceException:

因为=()=>\u result=Subject.GetReport(fooreptype);
它应该返回\u a\u success=()=>\u result.Successful.ShouldBeTrue();
它应该返回\u something=()=>\u result.Data.shouldbenull();
//此测试崩溃
它应该返回具体=\u result.Data.ShouldBeOfType;
我在跑步:

  • VS 2013 RC
  • ReSharper版本8.0.2000.2660
  • 机器.规范0.5.16(根据NuGet)

我试着用
ReportBase、
接口的实现以及
ReportBase的具体扩展来重放
ShouldBeOfType
中的类型,结果都是一样的。

您必须小心使用ReSharper,尤其是在调用测试运行程序时。它并不总是运行编译器,即使它运行了,它也可以使用一些愚蠢的、过时的卷影副本。你要仔细检查你的语法

It should_return_a_concrete = _result.Data.ShouldBeOfType<IReportBase<BarChart>>;
它应该返回具体=\u result.Data.ShouldBeOfType;

您缺少委托分配,
=()=>
,并且
ShouldBeOfType()

末尾的方法调用参数。您是从编辑器中直接复制的还是键入错误?您缺少正确的委托分配
=()=>
ShouldBeOfType()
末尾的方法调用parens,抱歉,我应该在编辑中解释,但我取消了测试注释,以便它颜色很好(这样更容易捕捉错误格式)。Anthony,我补充您的评论,即使这对除了我以外的任何人都没有用。你说得对!伙计,我们让几个人看了一下,但是我们被试跑者明显的撞车事件所困扰。为我拍几张照片。:-)我想出了一个办法,让它成为一个答案,并对resharper提出了总体上的抱怨;)