从NUnit向TestResult.xml文件添加更多信息

Rya*_*eld 6 nunit unit-testing

我希望能够在单元测试中添加"消息",使其实际出现在NUnit生成的TestResult.xml文件中.例如,这是当前生成的:

<results>
    <test-case name="MyNamespace.Tests.MyTest" executed="True" success="True" time="0.203" asserts="4" />
</results>
Run Code Online (Sandbox Code Playgroud)

我希望能够有一个额外的属性(或视情况而定),例如:

<results>
    <test-case name="MyNamespace.Tests.MyTest" executed="True" success="True" time="0.203" asserts="4" message="Tested that some condition was met." />
</results>
Run Code Online (Sandbox Code Playgroud)

这个想法是上面的"消息"将以某种方式在测试方法本身内定义(在我的例子中,在运行时生成).是否有某处我不知道能够做这样的事情?

小智 6

在最近的NUnit版本中,您可以执行以下操作:

Assert.AreEqual(250.00, destination.Balance, "some message here");
Run Code Online (Sandbox Code Playgroud)

其中"某些消息"可以是常量消息,也可以是在运行时生成并存储在字符串变量中的消息.如果断言失败,这些消息将仅出现在输出中.但是,通常,您只需要有关失败测试的信息,因此我建议通过添加每个先前的消息来构建字符串,然后将该字符串变量用作所有断言中的消息.这使您可以从失败的测试中获得所需的所有信息.


Bla*_*rad 2

这可能没有抓住要点,但是如何命名测试以便它们表明它们测试的内容 - 那么您甚至可能不需要该消息。

如果事实证明这是绝对必要的,我认为您需要生成自己的测试运行程序,它将(从我的脑海中)读取测试用例的附加属性并将其附加到输出。