在查看源代码之后,它们似乎在功能上相同,除了
XUnitPublisher具有一个额外的方法(目的是我不明白(!))之外,并且该类在
implements列表中声明了更多接口。
关键的区别似乎是
XUnitPublisherclass扩展了
hudson.tasks.Recorder类,而
XUnitBuilder扩展了
hudson.tasks.Builder。
我认为,面对用户的不同之处在于,构建器的失败将Jenkins作业标记为“失败”,而发布者的失败将作业标记为“不稳定”。(来源:https
:
//wiki.jenkins.io/display/JENKINS/Terminology)
考虑到所有这些,我建议您使用xUnitPublisher。如果编译通过但某些测试失败,我将构建命令设置为返回0。这样,Jenkins为我提供了失败状态(对于失败的编译)和不稳定状态(对于正常工作但测试失败的状态)。我喜欢这种方式。
提交历史并不能解释为什么会有如此荒谬的代码重复。我想知道一个是否按照另一个实现,就像在弃用时通常这样做的那样……可能是因为每个必须具有不同的超类。
XUnitBuilder.java,XUnitPublisher.java



