2017-03-07 69 views
0

我正在寫一個集成測試框架,並在我的父測試類,我有以下:SpringBoot測試ContextConfiguration有沒有橫幅

@ContextConfiguration(loader = AnnotationConfigContextLoader.class) 
public abstract class IntegrationTestParent extends AbstractTestNGSpringContextTests { 

    ... 

    @Configuration 
    @EnableAutoConfiguration 
    @ComponentScan("redacted") 
    public static class AutomationTestConfig { 
    } 
} 

,讓我的靈活性很大,不過,我注意到我的自定義banner.txt文件不再被打印出來,我的application.properties文件(其中設置了spring.output.ansi.enabled=ALWAYS和一些maven過濾的應用程序變量)也不被讀取。

除了一些真正的生成ascii藝術的figlet外,它還打印出了很多關於JVM和各種系統和環境屬性的方便的調試信息,所以我對遠程環境有了一個非常好的主意(a la Jenkins and Bamboo或任何人的任意筆記本電腦)他們正在運行。

除了@ContextConfiguration(loader = AnnotationConfigContextLoader.class)之外,有沒有辦法讓這個行爲?

回答

0

我找到了一箇中間解決方案。我將它稱爲中間值,因爲我得到了我想要的行爲(基於註解的上下文,可在下游項目中加載,其中我有其他配置和Bean等),但我沒有使用AnnotationConfigContextLoader類。

我換了它爲SpringApplicationContextLoader。每javadoc

一個好的ContextLoader可用於測試春季啓動應用 (那些正常啓動使用SpringApplication)。可用於 測試非web功能(如存儲庫層)或啓動完全配置的嵌入式servlet容器。使用@WebIntegrationTest (或@IntegrationTest with @WebAppConfiguration)來表示您想要使用真實的servlet容器或@WebAppConfiguration來使用一個MockServletContext,而不是 。

如果在測試類中提供了@ActiveProfiles,它們將用於創建應用程序上下文 。

根據前幾句話,這基本上是我在找的東西。