gpt4 book ai didi

java - 注册到 JUnit RunListener.testRunStarted

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:03 25 4
gpt4 key购买 nike

我想在我的测试开始运行时运行一次性设置逻辑。我有多个测试类,我希望这个逻辑在所有测试类执行之前只运行一次。我看到有一个 RunListener.testRunStarted 方法,但似乎为了注册该通知,我需要成为实例化 JUnitCore 的方法:

JUnitCore jUnitCore = new JUnitCore();
jUnitCore.addListner(myListener);
jUnitCore.run(...);

但是,我无法控制我的测试如何运行,因为它们可能通过 IntelliJ 运行 - 然后 IntelliJ 正在实例化 JUnitCore .

因此,我的问题是运行设置代码的最佳位置是什么,它应该在所有测试类执行之前只运行一次而不需要运行我的测试的客户端/用户进行额外配置

最佳答案

我不确定是否存在这样的方法。但是一个(hacky)解决方法是为所有具有静态初始化程序 block 的测试类设置一个公共(public)基类。加载哪个测试类并不重要,初始化程序将恰好运行一次(除非您 fork 测试运行,然后每个 fork 运行一次)。

public abstract class AllYourTestsAreBelongToUs{
static{
// initialize stuff here
}
}

public class RealTestClass extends AllYourTestsAreBelongToUs{

@Test
public void someTest(){}
@Test
public void someOtherTest(){}

}

关于java - 注册到 JUnit RunListener.testRunStarted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33867638/

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