Возможность избежать повторной загрузки контекста приложения в spring TestContext через DependencyInjectionTestExecutionListener

Допустим, у меня есть тестовый класс ServiceTest с тремя тестовыми методами test1, test2 и test3. Все три метода используют некоторые ресурсы, предоставляемые Spring. В текущем положении дел, если возникает проблема с загрузкой контекста spring, повторная попытка загрузки контекста выполняется для каждого метода тестирования. Есть ли способ прервать его при первом сбое с помощью существующих подключений? За этим могут быть веские причины, но я не могу их оценить. Любые указатели будут полезны. Настоящая проблема заключается в том, что загрузка контекста занимает несколько минут и бесполезно продолжать повторные попытки загрузки контекста, если она уже не удалась в первый раз, и только пытается продлить время, которое требуется механизму CI для сообщения об ошибках.

Я думал предложить патч для Spring, который может поддерживать карту попыток в org.springframework.test.context.TestContext, которую можно использовать для отслеживания предпринятых попыток и воздерживаться от попыток снова и снова. Мысли?

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:com/kilo/spring/test-context.xml" })
public class ServiceTest {

@Resource(name = "fibonacciService")
private FibonacciService fibonacciService;

@Test
public void test1() {
    long fibonacci = fibonacciService.getFibonacci(5);
}

@Test
public void test2() {
    long fibonacci = fibonacciService.getFibonacci(4);
}

@Test
public void test3() {
    long fibonacci = fibonacciService.getFibonacci(6);
}

person Kilokahn    schedule 26.06.2012    source источник


Ответы (1)


Нет, в настоящее время нет способа прервать ApplicationContext загрузку при первом сбое с существующими подключаемыми модулями.

Не стесняйтесь создать задачу JIRA против SPR. проект и компонент Test с вашими предложениями.

С уважением,

Сэм (автор Spring TestContext Framework)

person Sam Brannen    schedule 26.06.2012
comment
Спасибо, Сэм. Зарегистрировал SPR-9548 с тем, что я мог придумать. - person Kilokahn; 27.06.2012