Java @BeforeClass在eclipse中为同一个类运行多次

Java @BeforeClass在eclipse中为同一个类运行多次,java,eclipse,junit,Java,Eclipse,Junit,我正在eclipse中编写一些junit测试,需要在测试之前进行一些耗时的设置。看来@BeforeClass应该是这样做的。我目前在一个有2个@Test函数的类上测试了它 当我在eclipse中右键单击一个类并选择“RunAs”->“JUnit Test”时,我可以看到@BeforeClass在两个函数之前执行 我甚至尝试将@BeforeClass更改为@Before,并将其存储在一个布尔值中,不管我们是否已经执行了这个函数,但是eclipse似乎从同一个类创建了两个类对象,每个测试运行一个,所

我正在eclipse中编写一些junit测试,需要在测试之前进行一些耗时的设置。看来@BeforeClass应该是这样做的。我目前在一个有2个@Test函数的类上测试了它

当我在eclipse中右键单击一个类并选择“RunAs”->“JUnit Test”时,我可以看到@BeforeClass在两个函数之前执行

我甚至尝试将@BeforeClass更改为@Before,并将其存储在一个布尔值中,不管我们是否已经执行了这个函数,但是eclipse似乎从同一个类创建了两个类对象,每个测试运行一个,所以这也没有帮助

那么,即使我有很多测试,我应该怎么做才能让安装函数只运行一次呢?或者我只是在尝试运行测试时错误地使用了eclipse

设置如下所示:

public class SuperClass {
  @BeforeClass
  public void { // do timeconsuming setup }
}

public class TestClass extends SuperClass {
  @Test
  public void test1() { // perform first test }
  @Test
  public void test2() { // perform second test }
}

@BeforeClass方法应该是静态的,以便只执行一次。

使带有BeforeClass注释的方法成为静态的可能是解决方案:

@BeforeClass
public static void

实际上,我使用了static,但忘记了在小示例代码中包含它。但这让我想到了修复方法,我从构造函数中调用了另一个非静态函数,使该函数静态修复了它。很抱歉没有在这里放完整的代码,太多了。