我在NUnit下编写了单元测试,它使用具有不同参数的TestFixtures。现在,当我运行测试时,我想看看测试已经通过哪个参数,哪个参数没有。不幸的是,ReSharper只显示“测试失败:儿童测试失败”而且没有更多信息。有什么办法可以看出哪些参数导致了测试失败?
谢谢!
答案 0 :(得分:16)
我通过电子邮件向JetBrains发送了关于此的消息,并于2010年7月9日收到了Andrey Serebryansky的以下回复:
此问题将在下一个ReSharper版本中解决。
我认为撰写本文时的当前版本是5.1。
基于@Damien McGivern和@ zcrar70的评论
问题是here,它已在Resharper内部版本中得到修复。
然而根据Victor Kropp(在上面的链接中):
由于技术原因,这些更改不会包含在5.1中。
当被问及回复的发布日期是什么时(截至2010年8月3日):
对不起,我们的路线图尚未确定。我真的不知道。
Victor Kropp的更多答案:
Q值。在时间线上是否有任何更新,以便在我们可以使用的版本或每晚版本中进行此更新?
一个。 ReSharper 6.0 EAP预计将在年底前开始。我现在不知道实际日期。
Q值。这个错误修复是否可以在6.0之前的任何版本中使用?
一个。不,对不起
我刚用Resharper 6 EAP(build 2101)测试了这个,看起来他们在解决这个问题上做得相当不错。
我还没有玩过太多但是到目前为止我喜欢我所看到的。
答案 1 :(得分:1)
我假设你在谈论TestCaseAttribute
,对于这样的测试:
[TestCase(true, Description = "When true")]
[TestCase(false, Description = "When false")]
[Test]
public void SomeTest(bool parameter) { . . . }
我在这种情况下使用Description属性。使用description属性,它将告诉您哪个测试用例失败。如果你描述的情况足够好,它应该是自我记录的。
答案 2 :(得分:1)
您使用的是什么版本的ReSharper?
<强>更新强>
我做了一些研究,我不认为Resharper 4.X不支持TestCase属性。
显然它将在R#5.X中得到支持。
同时,有一个名为Gallio的ReSharper PlugIn可能有所帮助。
从这里得到SO问题的信息 - &gt; ReSharper Unit Test Runner - TestCase
答案 3 :(得分:1)
取决于它是如何失败的。在Assert中,最后一个参数是一个可选字符串,您可以在其中放置失败信息。
例如:Assert.IsTrue(false, "Because I'm silly");
当您的测试失败时,它会在那里传达您的信息。
同样,您可以使用Console.Write进行测试输出。还应该有一个调用堆栈,描述测试失败的位置,前提是您没有捕获并浪费异常。