2010-04-29 3 views
0

Я хочу сделать некоторые действия перед всем набором тестов (также после набора). Так что я написал, как:Как использовать @BeforeClass и @AfterClass в JunitPerf?

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

+0

Фактически, я выполнил функцию suite() в другом классе под названием PerformanceTestSuite {}, затем я интегрировал код начальных действий в функции suite(). Это сработало, но ... не хорошо, как я чувствую – allenzzzxd