如何在NUnit单元测试中记录错误和消息?

时间:2009-03-26 04:38:50

标签: .net unit-testing nunit

NUnit的GUI runner中有几个选项卡: alt text

据我所知,使用Console.WriteLine(...)会在“Console.Out”标签中显示消息。我的问题是其他标签是什么以及如何将消息记录给他们?

[编辑]

我道歉,因为我意识到我原来的问题不够明确。我打算做的是在执行所有单元测试用例后创建一个扩展的结果报告。所以我正在探索在运行测试时可以记录的各种消息的方式。我期待着创建一个结果报告,如:

==== TEST1 starts ====
Start Time: 2009-03-26 11:15:13 AM
Checking operation 1....OK
Checking value of variable "X": 52.56....OK
End Time: 2009-03-26 11:15:19 AM
Time taken to execute test: 0.00:00:06.000

==== TEST2 starts ====
.
.

有任何建议我如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

选项卡的设置位于NUnit选项中 - 请参阅docs here

例如,如果您选中显示控制台错误输出,那么该选项卡将显示您的测试写入Console.Error的文本。

答案 1 :(得分:1)

样品:

    Assert.AreNotEqual(0, result.Count);
     [exec]
     [exec] Tests run: 11, Failures: 1, Not run: 0, Time: 50.422 seconds
     [exec]
     [exec] Failures:
     [exec] 1) Domain.UnitTest.ManagerTest.TestEmbeddedIndex
 :   Expected: not 0
     [exec]   But was:  0
     [exec]

这是你要找的吗?
断言非常广泛。在其中一个条件失败后,Nunit会抛出一个错误。

Assert.AreEqual(),Assert.AreSame(), Assert.Contains(),Assert.Fail();

此外,Nunit还有类似

的内容
[ExpectedException] 

深入了解documentation了解详情..


基于修改更新:
如果我是你,我会将其作为构建机制的一部分。 我不会做这样的事情......

<target name="setup" description="Initializes test properties">
    <echo message="Sucessfully initialized tests" />
</target>

[Test]之后显示控制台消息是一个坏主意恕我直言。当你运行1000个测试时,它会延迟测试。测试意味着非常快。

答案 2 :(得分:0)

这是现有功能。 运行测试并生成NUnit报告。您登录测试的所有断言失败将在报告中显示。