C# 在循环中使用NUnit Assert时,如何在错误消息中显示更多信息?

C# 在循环中使用NUnit Assert时,如何在错误消息中显示更多信息?,c#,unit-testing,nunit,assert,C#,Unit Testing,Nunit,Assert,考虑以下代码: [Test] public void WidgetTest() { foreach (Widget widget in widgets) { Assert.AreEqual(0, widget.SomeValue); } } 如果其中一个断言失败,我将得到一条非常无用的错误消息,如下所示: 1) Test Failure : WidgetTest.TestSomeValue Expected: 0 But was: 1 at

考虑以下代码:

[Test]
public void WidgetTest()
{
    foreach (Widget widget in widgets)
    {
        Assert.AreEqual(0, widget.SomeValue);
    }
}
如果其中一个断言失败,我将得到一条非常无用的错误消息,如下所示:

1) Test Failure : WidgetTest.TestSomeValue
  Expected: 0
  But was:  1

at WidgetTest.TestSomeValue()

所以,问题是,如何让NUnit显示更有用的信息,比如小部件的名称,或者循环的迭代,等等?即使是行号也会更有帮助,因为这是以自动方式运行的,我希望能够在不调试代码的情况下发现失败的断言。

您也可以使用包含消息的重载:

Assert.AreEqual(0, widget.SomeValue,
                "Widget " + widget + " should have SomeValue of 0");

如果有一种方式来装饰他自动生成的消息,而不是从头开始写自己的消息,那就太好了。