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

时间:2011-08-25 15:36:50

标签: java eclipse junit

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

当我在eclipse中右键单击一个类并选择“Run As”时 - > “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 }
}

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

使用BeforeClass注释的方法静态可能是解决方案:

@BeforeClass
public static void