2012-06-26 3 views
3

세 가지 테스트 메소드 인 test1, test2 및 test3이있는 ServiceTest라는 테스트 클래스가 있다고 가정 해 보겠습니다. 세 가지 방법 모두 스프링으로 제공되는 리소스를 사용합니다. 현재 상황에서 스프링 컨텍스트 로딩에 문제가 있으면 각 테스트 메서드에 대해 컨텍스트로드가 다시 시도됩니다. 기존의 후크 - 인으로 첫 번째 실패 자체를 중단 할 수있는 방법이 있습니까? 그 뒤에 좋은 이유가있을 수 있습니다 -하지만 나는 그것을 감사하지 않습니다. 모든 포인터가 도움이 될 것입니다. 실제 문제는 컨텍스트로드에 몇 분이 소요되며 이미 실패한 경우 컨텍스트를 다시로드하는 데 쓸모가 없으며 CI 엔진이 오류를보고하는 데 걸리는 시간을 연장하려고하는 것입니다.Spring의 Application Context가 반복적으로로드되는 것을 피할 수있는 기능 DependencyInjectionTestExecutionListener를 통한 TestContext

나는 시도를 추적하고 반복해서 시도하는 것을 자제하는 데 사용할 수있는 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); 
} 

답변

2

아니, 현재 기존의 후크 기능을 가진 첫 번째 실패에 중단 ApplicationContext 로딩을 할 수있는 방법이 없습니다.

SPR 프로젝트와 당신의 제안을 테스트 구성 요소에 대해 create a JIRA issue 주시기 바랍니다.

감사합니다,

샘 (스프링 TestContext 프레임 워크의 저자)

+0

감사 샘. [SPR-9548] (https://jira.springsource.org/browse/SPR-9548)에 내가 생각할 수있는 것으로 기록되었습니다. – Kilokahn