我现在正在研究NUnit XML输出,并想知道是否可以仅为故障生成输出 。
我的意思是,如果测试通过正常,则根本不会为它生成任何XML输出。
(更新:XSLT不是这里的一个选项。我不希望XML输出完全通过测试:如果我不需要有关通过测试的详细信息,我不希望系统花时间生成这些详细信息。)
这个想法是,如果你有很多测试,XML输出往往会非常大,但是无论如何你有80%的时间都是在失败之后。对于这种情况,我想以这样的方式运行我的测试,即只生成有关失败的信息。
答案 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实现它或创建自己的结果报告。