我正在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 }
}
答案 0 :(得分:4)
@BeforeClass方法应为静态,以便只执行一次。
答案 1 :(得分:4)
使用BeforeClass注释的方法静态可能是解决方案:
@BeforeClass
public static void