【问题标题】:Is it possible to customize NUnit XML output?是否可以自定义 NUnit XML 输出?
【发布时间】:2020-07-19 19:40:59
【问题描述】:

我现在正在查看 NUnit XML 输出,想知道是否可以生成输出仅用于失败

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

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

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

【问题讨论】:

    标签: nunit


    【解决方案1】:

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

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

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

    【讨论】:

    • 好吧,我的意思是我根本不想要任何通过测试的输出。如果我不需要有关已通过测试的详细信息,我不希望系统花时间生成这些详细信息。
    • 感谢 Keith - 我们一直在寻找一种控制文件格式的方法,而您的回答正是我们所需要的 :-)
    【解决方案2】:

    我将此问题发布到 NUnit Google Groups 组和 Charlie Poole confirmed 没有这样的选项。

    【讨论】:

      【解决方案3】:

      我不能保证它是否有效,但可能你可以编写自己的插件来实现你想要的。

      如果您使用插件连接到扩展点“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 这样的属性,请让 Charlie 实现它或通过仅在 result.IsFailure 为 true 时写入输出来创建自己的结果报告。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-02
        • 2016-09-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多