是否可以自定义NUnit XML输出

时间:2010-02-08 14:28:40

标签: nunit

我现在正在研究NUnit XML输出,并想知道是否可以仅为故障生成输出

我的意思是,如果测试通过正常,则根本不会为它生成任何XML输出。

更新:XSLT不是这里的一个选项。我不希望XML输出完全通过测试:如果我不需要有关通过测试的详细信息,我不希望系统花时间生成这些详细信息。)

这个想法是,如果你有很多测试,XML输出往往会非常大,但是无论如何你有80%的时间都是在失败之后。对于这种情况,我想以这样的方式运行我的测试,即只生成有关失败的信息。

3 个答案:

答案 0 :(得分:4)

您可以在运行NUnit console runner时指定XSLT文件以自定义生成的文件:

nunit-console /transform:failures.xslt nunit.tests.dll

使用this XSLT文件生成默认XML文件,可以轻松修改该文件以仅报告失败。

答案 1 :(得分:1)

将此问题发布给NUnit Google Group和Charlie Poole confirmed,表示没有这样的选择。

答案 2 :(得分:0)

我无法保证它是否有效,但您可以编写自己的插件来实现您想要的效果。 如果你使用你的插件挂钩扩展点“EventListeners”,你必须实现的方法TestFinished(TestResult tr)将在测试结束时被调用。只需读出结果并将属性WriteResultEntry设置为true,仅用于失败的测试。好吧,我不确定Charlie是否实现了后者属性,但如果没有,你的插件仍然可以为失败的测试创建自己的NUnit结果文件。

/// <summary>
/// Test finished.
/// </summary>
/// <param name="result">The result.</param>
public void TestFinished(TestResult result)
{
   if (!result.IsFailure)
   {            
      result.WriteResultEntry = false;
   }
}

如果没有这样的属性WriteResultEntry,请通过仅在result.IsFailure为true时写入输出来要求Charlie实现它或创建自己的结果报告。