2015-09-18 6 views
1

Есть ли способ запустить функцию после каждого тестового класса JUnit в наборе? (По аналогии с @AfterClass аннотацию в тестеОчистка после каждого класса junit

Я знаю, что есть способ, чтобы добавить слушателя в тестовый набор, но он не знает, если его последний метод данного класса, или нет:

public class MySuite extends Suite { 

    public void run(RunNotifier notifier) { 
     notifier.addListener(new MyListener()); 
     super.run(notifier); 
    } 

    private static class MyListener extends RunListener { 
     @Override 
     public void testFinished(Description description) throws Exception { 
      //do something 
     } 
+1

Не могли бы вы объяснить, что вы хотите сделать в этой функции очистки? Может быть, мы знаем другой путь. –

ответ

0

Вы можете создать суперкласс, который выполняет очистку на @AfterClass, а затем пусть все тестовые классы наследуют от этого. Я часто это делаю для тестовых классов, которые похожи, например, для интеграционных тестов, которым нужна некоторая базовая база данных, которые впоследствии не следует очищать .

+0

спасибо Chrisitan, хотя у меня много модульных тестов. Я не могу изменить их все по одному – lili

0

Вы можете использовать @BeforeClass и @AfterClass в летнее время ур, но вам нужно использовать JUnit 4 Suites.

@RunWith(Suite.class) 
@SuiteClasses({ 
    //list of classes goes here 
}) 
public class MySuite{ 

    @AfterClass 
    public static void cleanup(){ 
     ... 
    } 

} 
Смежные вопросы