2014-12-04 102 views
0

我有一些自己的組件,我在我的Java應用程序之前開始。大約需要30秒才能開始。在我的集成測試中,我在類和所有測試用例運行之前啓動我的組件。我的問題是,是否可以在測試課之前運行我的組件,而不是在整個測試之前?Junit爲整個集成測試設置了一次(所有測試類)

親切的問候, 比拉爾

回答

1

使用@BeforeClass註釋。

請注意註釋的方法必須是靜態的。

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

我的意思是整個整合測試,而不是測試課。我在課前已經使用過,但我有幾個測試類,我想爲所有測試類運行一次。 – bilal 2014-12-04 13:03:00

+0

如果所有這些類都需要非常相同的測試準備,這是相互依賴性過大的標誌。你在使用模擬還是存根? – pablosaraiva 2014-12-04 19:01:50

1

如果您使用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 
    } 
}