gpt4 book ai didi

java - 获取 JUnitCore 的 RunNotifier

转载 作者:行者123 更新时间:2023-12-04 05:50:43 25 4
gpt4 key购买 nike

我想调用 JUnitCore 的 RunNotifier。
它称为 fNotifier,在 JUnitCore 类中启动。
来源:

https://github.com/KentBeck/junit/blob/master/src/main/java/org/junit/runner/JUnitCore.java

我可以通过反射以某种方式得到这个,或者有没有其他方法可以调用这个 RunNotifier.

我想用他的pleaseStop()方法。

最佳答案

使用反射不是最好的方法,但你可以这样做:

public static void main(String[] args) throws Exception {
Computer computer = new Computer();

JUnitCore jUnitCore = new JUnitCore();
Field field = JUnitCore.class.getDeclaredField("fNotifier");
field.setAccessible(true);
RunNotifier runNotifier = (RunNotifier) field.get(jUnitCore);
runNotifier.pleaseStop();
jUnitCore.run(computer, BeforeAfterTest.class, AssertionErrorTest.class);
}

这将抛出 org.junit.runner.notification.StoppedByUserException .

如果您想要更大的灵活性或控制力,那么执行上述操作的更好方法是将您想要的位从 JUnitCore 复制到您的类中,然后您就可以直接控制通知程序和监听器等。这是最好的方法来做到这一点。 JUnitCore 并没有真正设计用于扩展。

关于java - 获取 JUnitCore 的 RunNotifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10087422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com