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

标签 java eclipse junit

我正在 eclipse 中编写一些 junit 测试,我需要在测试前做一些耗时的设置。似乎 @BeforeClass 应该是执行此操作的方法。我目前在具有 2 个@Test 函数的类上对此进行了测试。

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

我什至尝试将@BeforeClass 更改为@Before 并将我们是否已经执行过此函数存储在一个 boolean 值中,但似乎 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
public static void

关于java - @BeforeClass 在 eclipse 中为同一个类运行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193189/

相关文章:

java - 猜一个数字

java - 如何避免在包装类中重复复杂的异常处理代码?

java - 在五仙词典中添加新术语

java - 如何在 swt list eclipse 中禁用列表元素

java - 如何在 java junit 测试中使用mockito模拟对函数的调用

java - Java 单元测试中的意外异常

java - 字符串比较中的空指针异常

java - 和java中main处的错误

java - 使用 Hibernate @Column 注释而不使用 getter 和 setters 方法声明

java - junit 和 psvm 有什么区别