代码之家  ›  专栏  ›  技术社区  ›  Hemant

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

  •  7
  • Hemant  · 技术社区  · 15 年前

    nunit的gui runner中有几个选项卡: alt text http://i43.tinypic.com/2lxglj5.png

    我理解使用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 回复  |  直到 15 年前
        1
  •  2
  •   Gary.Ray    15 年前

    选项卡的设置在nunit选项中-请参见 docs here .

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

        2
  •  1
  •   Cherian    15 年前

    基于 编辑 更新:
    如果我是你,我会把这作为构建机制的一部分。 在南特,我会做一些像这样的事情。

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

    每隔一次后显示控制台消息 [Test] 是个坏主意。它会延迟运行1000_s的测试。测试的速度非常快。

        3
  •  0
  •   Cherian    15 年前

    Sample:

        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();
    

    此外,努尼特还有

    [ExpectedException] 
    

    钻研 documentation 学习更多。