是否可以自定义NUnit XML输出?

是否可以自定义NUnit XML输出?,nunit,Nunit,我现在正在查看NUnit XML输出,想知道是否有可能仅为故障生成输出 我的意思是,如果测试通过了OK,那么就根本不会为它生成XML输出 XSLT在这里不是一个选项我根本不希望通过测试的XML输出:如果我不需要有关通过测试的详细信息,我不希望系统花费时间生成这些详细信息* 其思想是,如果您有很多测试,XML输出往往相当大,但80%的时间都是在失败之后。对于这种情况,我希望以这样的方式运行测试,即只生成有关失败的信息。在运行NUnit时,可以指定XSLT文件以自定义生成的文件: nunit-con

我现在正在查看NUnit XML输出,想知道是否有可能仅为故障生成输出

我的意思是,如果测试通过了OK,那么就根本不会为它生成XML输出

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


其思想是,如果您有很多测试,XML输出往往相当大,但80%的时间都是在失败之后。对于这种情况,我希望以这样的方式运行测试,即只生成有关失败的信息。

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

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

默认XML文件是使用生成的,可以很容易地修改为只报告失败。

我向NUnit小组发布了这个问题,Charlie Poole表示没有这样的选项。

我不能保证它是否有效,但您可能可以编写自己的加载项来实现您想要的功能

如果您使用外接程序连接到扩展点“EventListeners”,那么您必须实现的方法TestFinished(TestResult tr)将在测试完成时被调用。只需读出结果并将属性WriteResultEntry设置为true(仅适用于失败的测试)

/// <summary>
/// Test finished.
/// </summary>
/// <param name="result">The result.</param>
public void TestFinished(TestResult result)
{
   if (!result.IsFailure)
   {
      result.WriteResultEntry = false;
   }
}
我不确定Charlie是否实现了后一个属性,但如果没有,您的加载项仍然可以为失败的测试创建自己的NUnit resultfile

/// <summary>
/// Test finished.
/// </summary>
/// <param name="result">The result.</param>
public void TestFinished(TestResult result)
{
   if (!result.IsFailure)
   {
      result.WriteResultEntry = false;
   }
}
//
///测试完成了。
/// 
///结果呢。
公共void TestFinished(TestResult结果)
{
如果(!result.IsFailure)
{
result.WriteResultEntry=false;
}
}

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

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