2010-04-29 64 views
0

我想在整個測試套件之前做一些操作(也在套件之後)。所以我寫了這樣的:如何在JunitPerf中使用@BeforeClass和@AfterClass?

public class PerformanceTest extends TestCase { 

    @BeforeClass 
    public static void suiteSetup() throws Exception { 
      //do something 
    } 

    @AfterClass 
    public static void suiteSetup() throws Exception { 
      //do something 
    } 

    @Before 
    public void setUp() throws Exception { 
      //do something 
    } 

    @After 
    public void tearDown() throws Exception { 
      //do something 
    } 

    public PerformanceTest(String testName){ 
      super(testName); 
    } 

    public static Test suite() { 
      TestSuite suite = new TestSuite(); 

      Test testcase1 = new PerformanceTest("DoTest1"); 
      Test loadTest1 = new LoadTest(testcase1, n); 

      Test testcase2 = new PerformanceTest("DoTest2"); 
      Test loadTest2 = new LoadTest(testcase2, n); 

      return suite; 
    } 

    public void DoTest1 throws Throwable{ 
      //do something 
    } 

    public void DoTest2 throws Throwable{ 
      //do something 
    } 
} 

但是我發現,它從來沒有在@BeforeClass和@AfterClass到達代碼。 那麼我該如何解決這個問題呢?或者有其他方法可以實現這一點? 謝謝你的幫助。

回答

1

您不能同時擴展TestCase和使用註釋。

TestCase是一個JUnit 3概念,註釋是一個JUnit 4概念。

+0

那麼我怎麼能在這種情況下,以編程方式執行測試套件之前的初始函數或使用註釋? – allenzzzxd 2010-04-30 08:20:21

+0

實際上,我所完成的工作是將suite()函數放入另一個名爲PerformanceTestSuite {}的類中,然後我將suite()函數中的初始操作代碼進行了集成。這很有效,但是......我感覺不太好 – allenzzzxd 2010-04-30 08:25:47

相關問題