NUnit + ReSharper:如何使用不同的参数查看TestFixture的结果?

时间:2010-05-17 09:25:04

标签: c# nunit resharper

我在NUnit下编写了单元测试,它使用具有不同参数的TestFixtures。现在,当我运行测试时,我想看看测试已经通过哪个参数,哪个参数没有。不幸的是,ReSharper只显示“测试失败:儿童测试失败”而且没有更多信息。有什么办法可以看出哪些参数导致了测试失败?

谢谢!

4 个答案:

答案 0 :(得分:16)

我通过电子邮件向JetBrains发送了关于此的消息,并于2010年7月9日收到了Andrey Serebryansky的以下回复:

  

此问题将在下一个ReSharper版本中解决。

我认为撰写本文时的当前版本是5.1。


编辑:

基于@Damien McGivern和@ zcrar70的评论

问题是here,它已在Resharper内部版本中得到修复。

然而根据Victor Kropp(在上面的链接中):

  

由于技术原因,这些更改不会包含在5.1中。

当被问及回复的发布日期是什么时(截至2010年8月3日):

  

对不起,我们的路线图尚未确定。我真的不知道。

EDIT2:

Victor Kropp的更多答案:

  

Q值。在时间线上是否有任何更新,以便在我们可以使用的版本或每晚版本中进行此更新?

     

一个。 ReSharper 6.0 EAP预计将在年底前开始。我现在不知道实际日期。

     

Q值。这个错误修复是否可以在6.0之前的任何版本中使用?

     

一个。不,对不起

EDIT3:

我刚用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进行测试输出。还应该有一个调用堆栈,描述测试失败的位置,前提是您没有捕获并浪费异常。