2012-06-26 39 views
3

在彈簧的TestContext應用程序上下文的重複負荷可以說我有稱爲ServiceTest與三個測試方法爲test1,TEST2和TEST3的測試類。這三種方法都使用Spring提供的一些資源。在當前情況下,如果加載彈簧上下文時出現問題,則對每種測試方法重新嘗試上下文加載。有沒有辦法,我可以讓它在第一次失敗時中止現有的掛鉤?它背後可能有很好的理由 - 但我不理解它。任何指針都會有幫助。真正的問題是上下文負載需要幾分鐘的時間,並且如果第一次失敗並且只試圖延長CI引擎報告失敗的時間,那麼它將無法繼續重新嘗試加載上下文。能夠避免經由DependencyInjectionTestExecutionListener

我正在考慮提出一個修補程序,可以在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加載在第一次故障時被現有的掛鉤中止。

隨意create a JIRA issueSPR項目,您的建議將測試組件。

問候,

山姆(Spring的TestContext框架的作者)

+0

謝謝山姆。用我能想到的[SPR-9548](https://jira.springsource.org/browse/SPR-9548)記錄。 – Kilokahn