Junit为整个集成测试设置了一次(所有测试类)

时间:2014-12-04 11:56:09

标签: java junit

我有一些自己的组件,我在Java应用程序之前启动它。启动它大约需要30秒。在我的集成测试中,我在类之前启动我的组件并运行所有测试用例。我的问题是,是否可以在测试类之前运行我的组件,而不是在整个测试之前运行?

亲切的问候, 比拉尔

3 个答案:

答案 0 :(得分:2)

如果您使用JUnit套件,则可以在整个套件运行之前使用@BeforeClass执行方法,在整个套件运行后使用@AfterClass

@RunWith(Suite.class)
@SuiteClasses(
{
    //list your test classes here

}
)
 public class IntegrationSuite{

     @BeforeClass
     public static void setupSuite(){
        //do your initialization here
     }

     @AfterClass
     public static void tearDownSuite(){
       //...if needed
     }
 }

答案 1 :(得分:1)

使用@BeforeClass注释。

请注意,带注释的方法必须是静态的。

@BeforeClass
public static void oneTimeInit() {
    System.out.println("It runs only once for all tests in this class.");
}

答案 2 :(得分:0)

如果你使用的是maven,你可以使用maven-failsafe-plugin。它具有用于测试设置的预集成测试目标。有关示例,请查看Maven Failsafe Plugin: how to use the pre- and post-integration-test phases