Java 自定义运行通知程序

Java 自定义运行通知程序,java,selenium,junit,junit4,Java,Selenium,Junit,Junit4,我想知道,如果我编写自己的自定义RunNotifier(并覆盖默认方法),当测试失败时是否会自动调用firetsfailure()之类的方法 () 另一种提问方式:我是否可以像覆盖和使用自定义RunListener方法一样使用此方法?RunNotifier由执行测试的类调用。它为测试调用每个RunListener(可以有多个)。如果您正在实现自己的Runner,您可能希望实现自己的RunNotifier,但通常不需要。是运行程序调用运行通知程序,后者依次调用每个运行侦听器 如果您正在实现自己的R

我想知道,如果我编写自己的自定义
RunNotifier
(并覆盖默认方法),当测试失败时是否会自动调用
firetsfailure()
之类的方法

()


另一种提问方式:我是否可以像覆盖和使用自定义RunListener方法一样使用此方法?

RunNotifier
由执行测试的类调用。它为测试调用每个
RunListener
(可以有多个)。如果您正在实现自己的
Runner
,您可能希望实现自己的
RunNotifier
,但通常不需要。是
运行程序
调用
运行通知程序
,后者依次调用每个
运行侦听器

如果您正在实现自己的Runner,请查看,它几乎可以实现您想要的所有功能。然后,对于每个测试失败,您将调用RunNotifier。如果从JUnitCore继承,那么大多数方法都已经存在了


如果您只是想知道测试的进度,请使用
RunListener

谢谢您的回复!我遇到的问题是,JUnitCore无法停止测试(plessetop())。因此,我想实现一个运行程序,它调用RunNotifier来停止测试运行。但是,我不能将RunListener添加到RunNotifier(addListener等仅供内部使用)或Runner。所以我的问题是,我能否像处理自定义RunListener一样处理自定义RunNotifier,只需覆盖它的函数,然后在测试失败、成功等情况下自动调用它们。不,你不能简单地替换RunNotifier。如果查看JUnitCore()的源代码,可以看到RunNotifier是不可重放的。要使用@RunWith或类似工具,您必须实现自己的Runner。如果你想停止测试,那是一个特定的问题,我会问另一个问题,更详细地解释这个问题。老实说,我已经做了:没有结果。如果我知道如何将RunListener添加到自定义运行程序中,这也会有所帮助。注:我不想替换RunNotifier,只需编辑它的fire'x'方法,以提供测试进度的可视化输出。就像您可以使用自定义RunListener一样。